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]'
I typically use
find "$HOME/docs"
, but with a few caveats:find $HOME/docs
mv "${HOME:?}/bin" ...
"${basename}_$num.txt"
"$HOME"/docs/*
or"$HOME/docs/"*
are common for me."${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]'
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.