Я учусь тому, как эффективно использовать различные set
опции в моем скрипте, и наткнулся на set -u
то, что кажется идеальным для выхода из моего скрипта, если переменная не установлена должным образом (например, удаление пользователей). Согласно справочной странице, set -u
и set -e
делает следующее ...
-e Exit immediately if a command exits with a non-zero status.
-u Treat unset variables as an error when substituting.
Я создал тестовый скрипт для проверки этой функциональности, но он не работает должным образом. Возможно, кто-то мог бы лучше объяснить мою проблему мне и где я неправильно интерпретирую? Тестовый скрипт ниже. Спасибо.
set -e
set -u
testing="This works"
echo $?
echo ${testing}
testing2=
echo $?
echo ${testing2}
testing3="This should not appear"
echo $?
echo ${testing3}
Я ожидаю, что скрипт отобразит 0 и «Это работает» , а затем потерпит неудачу, так как ${testing2}
не установлен.
Вместо этого у меня отображается 0 и «Это работает» , затем 0 и затем 0 Это не должно появляться
Кто-нибудь может дать некоторые знания? Спасибо.