Este es un sistema FreeBSD 7.x que ejecuta GNU bash versión 4.0.
En Bash, la set -u
opción puede forzar a un shell a imprimir un error si encuentra una variable no establecida, como esta:
$ set -u
$ echo $THISISUNSET
-su: THISISUNSET: unbound variable
$ echo $?
1
Sin embargo, también encuentro este mismo error para $ *:
$ echo $*
-su: $*: unbound variable
$ echo $?
1
$ echo $@
-su: $@: unbound variable
The Bash Manual 4.3.1 El Set Builtin dice específicamente que set -u
ignora $ * y $ @:
-u Trate las variables y parámetros no establecidos que no sean los parámetros especiales '@' o '*' como un error al realizar la expansión de parámetros. Se escribirá un mensaje de error en el error estándar y se cerrará un shell no interactivo.
¿Cómo puedo arreglar esto?