Ini adalah sistem FreeBSD 7.x yang menjalankan GNU bash versi 4.0.
Di Bash, set -u
opsi dapat memaksa shell untuk mencetak kesalahan jika menemui variabel yang tidak disetel, seperti ini:
$ set -u
$ echo $THISISUNSET
-su: THISISUNSET: unbound variable
$ echo $?
1
Namun, saya juga menghadapi kesalahan yang sama ini untuk $ *:
$ echo $*
-su: $*: unbound variable
$ echo $?
1
$ echo $@
-su: $@: unbound variable
The Bash Manual 4.3.1 Set Builtin secara khusus mengatakan bahwa set -u
mengabaikan $ * dan $ @:
-u Perlakukan variabel dan parameter yang tidak disetel selain dari parameter khusus '@' atau '*' sebagai kesalahan saat melakukan ekspansi parameter. Pesan kesalahan akan ditulis ke kesalahan standar, dan shell non-interaktif akan keluar.
Bagaimana saya bisa memperbaikinya?