How do you shell expand your variables and why?

x-post from !programming@programming.dev: https://programming.dev/post/2165136

3 points · 4 comments · view on lemmy.world

4 Comments

isVeryLoud@lemmy.ca · 7 pts · 2y

2nd one, feels natural as a programmer.

gamma@programming.dev · 4 pts · 2y (1 reply)

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@programming.dev · 2 pts · 2y

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.

Reptorian@programming.dev · 2 pts · 2y

Depends. I use G'MIC (Interpretative language for image processing largely inspired by bash) in CLI.

ig "C:\Users\User..."

If I need something with '$' in CLI, I'd be using $_path_rc\something_something. Sometimes with "" in case of spaces.

Other than that, I would be just running my own coded command in most case.