Если параметр отсутствует, то используется значение по-умолчанию
${parameter-default}, ${parameter:-default}
Если значения параметров не задананы явно, то они принимают значения по-умолчанию.
${parameter=default}, ${parameter:=default}
Если параметр имеет какое либо значение, то используется alt_value, иначе -- null ("пустая" строка).
${parameter+alt_value}, ${parameter:+alt_value}
Если parameter инициализирован, то используется его значение, в противном случае -- выводится err_msg.
${parameter?err_msg}, ${parameter:?err_msg}
Источники:
- 1-4 - user.su