これは、GNU bashバージョン4.0を実行しているFreeBSD 7.xシステムです。
Bashでは、このset -u
オプションは、次のように、設定されていない変数を検出した場合、シェルに強制的にエラーを出力させることができます。
$ set -u
$ echo $THISISUNSET
-su: THISISUNSET: unbound variable
$ echo $?
1
ただし、$ *でも同じエラーが発生します。
$ echo $*
-su: $*: unbound variable
$ echo $?
1
$ echo $@
-su: $@: unbound variable
Bashマニュアル4.3.1 Set Builtinは、特にset -u
$ *と$ @ を無視するように言っています:
-u未設定の変数および特殊パラメーター '@'または '*'以外のパラメーターは、パラメーター展開を実行するときにエラーとして扱います。エラーメッセージが標準エラーに書き込まれ、非対話型シェルが終了します。
どうすれば修正できますか?