I've seen : "${DB_HOST:=localhost}" because it assigns the variable if not set (: $… is just to run assignments standalone).

But that has the same effect like DB_HOST="${DB_HOST:-localhost} (use the string if not set), which is more readable.

While something like echo "${DB_HOST:=localhost}" smells from a mile, because it has output with side-effects.

you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 1 week ago

I'd you're concerned about this, it's up to you to change your bash script style.

Use "set -euo pipefail" and don't use ": =". You can't stop others from doing so though. It's their code, their choice.

I never use ": =" in bash though.

  • source