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
[–] 7 points 1 week ago (2 children)

The argument for : "${foo:=x}" is usually that you don't have to repeat foo, leading to less opportunity for errors and generally DRY.

  • source
  • hideshow 2 child comments