Я вивчаю, як ефективно використовувати різні 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 Це не повинно з'являтися
Хтось може надати якісь знання? Дякую.