• Gamma
    link
    fedilink
    English
    31 year ago

    This has never stuck with me, and I hadn’t thought about why until now. I have two reasons why I will always write ${x}_$y.z instead of ${x}_${y}.z:

    • Syntax highlighting and shellcheck have always caught the cases I need to add braces to prevent $x_ being expanded as ${x_}.
    • I write a lot of Zsh. In Zsh, braces are optional in way more cases. "$#array[3]" actually prints the length of the third item in array, rather than (Bash:) the number of positional parameters, then the string 'array[3]'.
    • thingsiplay
      link
      fedilink
      31 year ago

      @gamma I just use them out of consistency and principle, so I don’t need to think in which case it is required or not.

    • Cyclohexane
      link
      fedilink
      11 year ago

      I will always write ${x}_$y.z instead of ${x}_${y}.z:

      The difference between the two seems different to what’s in the OP. Is there a typo here?

      • Gamma
        link
        fedilink
        English
        11 year ago

        in the OP

        My reply is to a commenter who said they prefer "${HOME}/docs" over both options in the original image ("$HOME/docs" or "$HOME"/docs). Many people prefer to always include braces around the parameter name out of consistency, instead of only when they are required.

        My comment explained why my habit is to only include braces when they are necessary.