This is the right way
Comment on How do you shell expand your variables and why?
thingsiplay@kbin.social 1 year ago
@zephyr echo "${HOME}/docs"
brennesel@feddit.de 1 year ago
drew_belloc@programming.dev 1 year ago
This is the way
Simulation6@sopuli.xyz 1 year ago
I also do this so the variables are more easily spotted.
gamma@programming.dev 1 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 inarray
, rather than (Bash:) the number of positional parameters, then the string‘array[3]’
.
- Syntax highlighting and shellcheck have always caught the cases I need to add braces to prevent
bloopernova@programming.dev 1 year ago
This is the best way. It’s also the way the Shellcheck wants them.
thingsiplay@kbin.social 1 year ago
@bloopernova As you mention it, here the links for anyone interested: Online tool https://www.shellcheck.net/ and you can install it locally too https://github.com/koalaman/shellcheck .
hascat@programming.dev 1 year ago
While this looks like a handy tool, it does make me think shell scripting itself needs a cleaner approach than what we have currently.
gamma@programming.dev 1 year ago
Shellcheck doesn’t insist on braces unless it thinks you need them.
bloopernova@programming.dev 1 year ago
Oh! I didn’t know that (um, obviously lol)
I’ll edit my comment.