Isso é definitivamente sintaxe POSIX . Parafraseando:
Usando ${parameter-word}
, se parameter
for
- definido e não nulo, em seguida, substitua o valor de
parameter
, - definido, mas nulo, substitua null e
- desmarque e, em seguida, substitua
word
.
Exemplo de sessão:
$ echo "${parameter-word}"
word
$ parameter=
$ echo "${parameter-word}"
$ parameter=value
$ echo "${parameter-word}"
value
"Nulo" aqui significa simplesmente a string vazia. Não há nenhum valor nulo especial em shells POSIX, em contraste com o SQL, por exemplo.
Isso também está documentado na seção "Expansão de Parâmetros" de man bash
.