Ich lerne, wie ich verschiedene setOptionen in meinem Skript effizient nutzen kann , und bin darauf gestoßen, set -udass dies perfekt zum Beenden meines Skripts ist, wenn eine Variable nicht richtig festgelegt wird (z. B. Löschen von Benutzern). Nach dem Mann Seite, set -uund set -ehat die folgende ...
-e Exit immediately if a command exits with a non-zero status.
-u Treat unset variables as an error when substituting.
Ich habe ein Testskript erstellt, um diese Funktionalität zu testen, aber es scheint nicht wie erwartet zu funktionieren. Vielleicht könnte mir jemand mein Problem besser erklären und wo ich falsch interpretiere? Testskript ist unten. Vielen Dank.
set -e
set -u
testing="This works"
echo $?
echo ${testing}
testing2=
echo $?
echo ${testing2}
testing3="This should not appear"
echo $?
echo ${testing3}
Ich erwarte, dass das Skript 0 und "Dies funktioniert" anzeigt und dann fehlschlägt, da ${testing2}es nicht festgelegt ist.
Stattdessen wird 0 und "Dies funktioniert" angezeigt , gefolgt von 0 und dann 0 Dies sollte nicht angezeigt werden
Kann jemand etwas Wissen vermitteln? Vielen Dank.