Questo è un sistema FreeBSD 7.x che esegue GNU bash versione 4.0.
In Bash, l' set -u
opzione può forzare una shell a stampare un errore se incontra una variabile non impostata, come questa:
$ set -u
$ echo $THISISUNSET
-su: THISISUNSET: unbound variable
$ echo $?
1
Tuttavia, sto riscontrando anche lo stesso errore per $ *:
$ echo $*
-su: $*: unbound variable
$ echo $?
1
$ echo $@
-su: $@: unbound variable
Il Manuale di Bash 4.3.1 Il Set Builtin dice specificamente che set -u
ignora $ * e $ @:
-u Tratta le variabili e i parametri non impostati diversi dai parametri speciali '@' o '*' come errore durante l'esecuzione dell'espansione dei parametri. Verrà scritto un messaggio di errore nell'errore standard e uscirà una shell non interattiva.
Come posso risolvere questo problema?