Esta tarefa é portátil, funciona em qualquer shell POSIX. POSIX define esta expansão como:
${parameter:-word}
Use Default Values. If parameter is unset or null, the expansion of word shall be substituted; otherwise, the value of parameter shall be substituted.
Mas isso também define VAR
para o valor se VAR
foi definido e nulo. Para definir VAR
para valor, a menos que já esteja definido, você deve usar:
VAR=${VAR-value}
A omissão do cólon faz com que a substituição ocorra apenas se a variável não estiver definida:
In the parameter expansions shown previously, use of the colon in the format shall result in a test for a parameter that is unset or null; omission of the colon shall result in a test for a parameter that is only unset.