this post was submitted on 26 Aug 2023
3 points (100.0% liked)

Shell Scripting

1362 readers
1 users here now

From Ash, Bash and Csh to Xonsh, Ysh and Zsh; all shell languages are welcome here!

Rules:
  1. Follow Lemmy rules!
  2. Posts must relate to shell scripting. (See bottom of sidebar for more information.)
  3. Only make helpful replies to questions. This is not the place for low effort joke answers.
  4. No discussion about piracy or hacking.
  5. If you find a solution to your problem by other means, please take your time to write down the steps you used to solve your problem in the original post. You can potentially help others having the same problem!
  6. These rules will change as the community grows.

Keep posts about shell scripting! Here are some guidelines to help:


In general, if your submission text is primarily shell code, then it is welcome here!

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[โ€“] gamma 4 points 1 year ago* (last edited 1 year ago) (1 children)

I typically use 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"
  • I'm pretty inconsistent when globbing: "$HOME"/docs/* or "$HOME/docs/"* are common for me.
  • I don't use "${HOME}" unless I actually need the braces. The reason? I write more Zsh than anything, and the braces are even less necessary in Zsh: $#array[3] actually gets the length of the third element of the array, rather than substituting the number of arguments, then the string 'array[3]'
[โ€“] txtsd 2 points 1 year ago

I always brace my variables.

While I also use ZSH, I write most of my scripts in bash because they more often than not need to run on a CI/CD server.