bash Parameter Expansion
P
is evaluated
V
is the argument
${P+V}
${P-V}
${P=V}
${P?V}
P is not set
V
P = V
V > stderr
P is set
V
P
P
P
${P:+V}
${P:-V}
${P:=V}
${P:?V}
P is not set or is null
V
P = V
V > stderr
P is set and not null
V
P
P
P
exit if interactive shell