$\{var:-word}
: If var is null or unset, word is substituted for var. The value of var does not change.
$\{var:=word}
: If var is null or unset, var is set to the value of word.
$\{var:?message}
: If var is null or unset, message is printed to standard error. This checks that variables are set correctly.
$\{var:+word}
: If var is set, word is substituted for var. The value of var does not change.