Uczę się, jak efektywnie korzystać z różnych set
opcji w moim skrypcie i natknąłem się na to, set -u
że wydaje się idealny do wychodzenia ze skryptu, jeśli zmienna nie zostanie poprawnie ustawiona (np. Usuwanie użytkowników). Według mężczyzny stronie, set -u
i set -e
robi, co następuje ...
-e Exit immediately if a command exits with a non-zero status.
-u Treat unset variables as an error when substituting.
Utworzyłem skrypt testowy, aby przetestować tę funkcjonalność, ale wydaje się, że nie działa zgodnie z oczekiwaniami. Być może ktoś mógłby mi lepiej wyjaśnić mój problem i gdzie źle interpretuję? Skrypt testowy znajduje się poniżej. Dziękuję Ci.
set -e
set -u
testing="This works"
echo $?
echo ${testing}
testing2=
echo $?
echo ${testing2}
testing3="This should not appear"
echo $?
echo ${testing3}
Oczekuję, że skrypt wyświetli 0 i „To działa” , a następnie zakończy się niepowodzeniem, ponieważ ${testing2}
nie jest ustawiony.
Zamiast tego wyświetla się 0 i „To działa” , następnie 0, a następnie 0 To nie powinno się pojawić
Czy ktoś może podać trochę wiedzy? Dziękuję Ci.