Idiomatic bash: set default value for variable

bash, idioms

Solution

default value               : ${parameter:-word} \
assign default value        : ${parameter:=word}  |_ / if unset or null -
error if empty/unset        : ${parameter:?mesg}  |  \ use no ":" for unset only
use word unless empty/unset : ${parameter:+word} /

Problem

How can I set a default value for a bash variable in a concise, idiomatic way? This just looks ugly: ``` if [[ ! -z "$1" ]]; then option="$1" else option="default" fi ```

Original source

Related problems