Ich lerne, wie ich verschiedene set
Optionen in meinem Skript effizient nutzen kann , und bin darauf gestoßen, set -u
dass 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 -u
und set -e
hat 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.