Parameter Expansion – POSIX (bash)
+----------------------+-----------------+-----------------+
| parameter | parameter | parameter |
| Set and Not Null | Set But Null | Unset |
+--------------------+----------------------+-----------------+-----------------+
| ${parameter:-word} | substitute parameter | substitute word | substitute word |
+--------------------+----------------------+-----------------+-----------------+
| ${parameter-word} | substitute parameter | substitute null | substitute word |
+--------------------+----------------------+-----------------+-----------------+
| ${parameter:=word} | substitute parameter | assign word | assign word |
+--------------------+----------------------+-----------------+-----------------+
| ${parameter=word} | substitute parameter | substitute null | assign word |
+--------------------+----------------------+-----------------+-----------------+
| ${parameter:?word} | substitute parameter | error, exit | error, exit |
+--------------------+----------------------+-----------------+-----------------+
| ${parameter?word} | substitute parameter | substitute null | error, exit |
+--------------------+----------------------+-----------------+-----------------+
| ${parameter:+word} | substitute word | substitute null | substitute null |
+--------------------+----------------------+-----------------+-----------------+
| ${parameter+word} | substitute word | substitute word | substitute null |
+--------------------+----------------------+-----------------+-----------------+
source: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02
August 23rd, 2017 in
main entries