• @[email protected]
      link
      fedilink
      English
      13
      edit-2
      1 year ago

      This is the best way. It’s also the way the Shellcheck wants sometimes recommends.

    • 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.

  • @[email protected]
    link
    fedilink
    381 year ago

    find “$(echo $HOME > variable_holder.txt && cat variable_holder.txt)/$(cat alphabet.txt | grep “d”) $(cat alphabet.txt | grep “o”)$(cat alphabet.txt | grep “c”)$(cat alphabet.txt | grep “s”)”

    This is the easiest method

    • Eager Eagle
      link
      English
      71 year ago

      when you’re paid by character written

    • @ale
      link
      6
      edit-2
      11 months ago

      deleted by creator

    • thingsiplay
      link
      fedilink
      2
      edit-2
      1 year ago

      @ilega_dh You don’t need cat in cases when grep "d" alphabet.txt can read from file too. Edit: But obviously your comment was more of a joke to over complicate it. So never mind then.

    • monsterpiece42
      link
      fedilink
      11 year ago

      What should I search to better understand what is written here? Don’t mind learning myself, just looking for the correct keywords. Thanks!

      • @marcos
        link
        21 year ago

        Read the Bash manual. That one patter on the GP is called “Command Substitution”, you can search for it.

      • @[email protected]
        link
        fedilink
        21 year ago

        This comment is a joke and you wouldn’t want to do it like that in reality, but here are some related keywords you could look up: “Unix cat”, “Unix pipeline”, “grep”, “output redirection”, “command substitution”.

  • key
    link
    fedilink
    English
    171 year ago

    First one, then the other, then I forget the quotes, then I put them in single quotes by accident, then I utilize that “default value” colon syntax in case I’m missing HOME , then I just stick to ~ for the rest of the file.

  • Gamma
    link
    fedilink
    English
    6
    edit-2
    1 year ago

    Typically find "$HOME/docs", but with a few caveats:

    • In Zsh or Fish, the quotes are unnecessary: find $HOME/docs

    • If I’m using anything potentially destructive: mv "${HOME:?}/bin" ...

    • Of course, if it’s followed by a valid identifier character, I’ll add braces: "${basename}_$num.txt"