Это система FreeBSD 7.x под управлением GNU bash версии 4.0.
В 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 Обрабатывать неустановленные переменные и параметры, кроме специальных параметров '@' или '*', как ошибку при выполнении расширения параметров. Сообщение об ошибке будет записано в стандартную ошибку, и неинтерактивная оболочка завершится.
Как я могу это исправить?