Este é um sistema FreeBSD 7.x executando o GNU bash versão 4.0.
No Bash, a set -u
opção pode forçar um shell a imprimir um erro se encontrar uma variável não definida, como esta:
$ set -u
$ echo $THISISUNSET
-su: THISISUNSET: unbound variable
$ echo $?
1
No entanto, também estou encontrando esse mesmo erro por $ *:
$ echo $*
-su: $*: unbound variable
$ echo $?
1
$ echo $@
-su: $@: unbound variable
Manual do Bash 4.3.1 O Set Builtin diz especificamente que set -u
ignora $ * e $ @:
-u Trate variáveis e parâmetros não configurados que não sejam os parâmetros especiais '@' ou '*' como um erro ao executar a expansão de parâmetros. Uma mensagem de erro será gravada no erro padrão e um shell não interativo será encerrado.
Como posso consertar isso?