# Created on savesnippets.com ยท https://savesnippets.com/bJDFCAdmhOwTE8 # ${var:-default} : use default if var is unset OR empty (most common) echo "${USER:-anonymous}" # ${var:=default} : same, but ALSO assigns to var echo "${COUNT:=0}"; echo "$COUNT" # 0 0 # ${var:?error} : exit with error if var is unset/empty (defensive) : "${API_KEY:?Need to set API_KEY in environment}" # bash: API_KEY: Need to set API_KEY in environment # ${var:+alt} : use alt if var IS set, otherwise nothing echo "logged in as ${USER:+$USER}" # Distinguish "unset" from "empty" # ${var-default} : default ONLY if unset # ${var:-default} : default if unset OR empty unset X; echo "${X-default}" # default X=""; echo "${X-default}" # (empty) X=""; echo "${X:-default}" # default