Przykłady można znaleźć pod adresem http://www.tldp.org/LDP/abs/html/parameter-substitution.html
${parameter-default}, ${parameter:-default}
Jeśli parametr nie jest ustawiony, użyj wartości domyślnej. Po wywołaniu parametr nadal nie jest ustawiony.
Obie formy są prawie równoważne. Dodatek :
robi różnicę tylko wtedy, gdy parametr został zadeklarowany, ale ma wartość null.
unset EGGS
echo 1 ${EGGS-spam}
echo 2 ${EGGS:-spam}
EGGS=
echo 3 ${EGGS-spam}
echo 4 ${EGGS:-spam}
EGGS=cheese
echo 5 ${EGGS-spam}
echo 6 ${EGGS:-spam}
${parameter=default}, ${parameter:=default}
Jeśli parametr nie jest ustawiony, ustaw wartość parametru na domyślną.
Obie formy są prawie równoważne. : Robi różnicę tylko wtedy, gdy parametr został zadeklarowany i ma wartość null
unset EGGS
: ${EGGS=spam}
echo 1 $EGGS
unset EGGS
: ${EGGS:=spam}
echo 2 $EGGS
EGGS=
: ${EGGS=spam}
echo 3 $EGGS
EGGS=
: ${EGGS:=spam}
echo 4 $EGGS
EGGS=cheese
: ${EGGS:=spam}
echo 5 $EGGS
EGGS=cheese
: ${EGGS=spam}
echo 6 $EGGS
${parameter+alt_value}, ${parameter:+alt_value}
Jeśli parametr jest ustawiony, użyj alt_value, w przeciwnym razie użyj łańcucha null. Po wywołaniu wartość parametru nie uległa zmianie.
Obie formy są prawie równoważne. : Robi różnicę tylko wtedy, gdy parametr został zadeklarowany i ma wartość null
unset EGGS
echo 1 ${EGGS+spam}
echo 2 ${EGGS:+spam}
EGGS=
echo 3 ${EGGS+spam}
echo 4 ${EGGS:+spam}
EGGS=cheese
echo 5 ${EGGS+spam}
echo 6 ${EGGS:+spam}