Prüfen der Existenz einer Variablen mit test -z
In diesem Schritt werden Sie lernen, wie Sie mithilfe des test
-Befehls mit der Option -z
prüfen können, ob eine Variable leer ist oder nicht definiert ist. Dies ist in Skripten nützlich, um Entscheidungen zu treffen, basierend darauf, ob eine Variable einen Wert hat.
Der test
-Befehl wird verwendet, um bedingte Ausdrücke auszuwerten. Die Option -z
prüft, ob die Länge einer Zeichenkette Null ist. Wenn die Zeichenkette leer ist (oder die Variable nicht definiert ist), ist der Test wahr.
Lassen Sie uns prüfen, ob eine Variable namens MY_VARIABLE
definiert ist. Zunächst stellen wir sicher, dass sie nicht definiert ist.
Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:
unset MY_VARIABLE
Der unset
-Befehl entfernt eine Variable. Jetzt verwenden wir test -z
, um zu prüfen, ob MY_VARIABLE
leer ist. Wir kombinieren es mit echo
, um das Ergebnis des Tests zu sehen. Der Operator &&
führt den zweiten Befehl nur aus, wenn der erste Befehl erfolgreich ist (gibt einen wahren Wert zurück, was für test
bedeutet, dass die Bedingung erfüllt ist).
Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:
test -z "$MY_VARIABLE" && echo "MY_VARIABLE is empty or not set"
Da wir gerade MY_VARIABLE
entfernt haben, ist die Bedingung test -z "$MY_VARIABLE"
wahr (die Variable ist leer), daher wird der echo
-Befehl ausgeführt.
Sie sollten die folgende Ausgabe sehen:
MY_VARIABLE is empty or not set
Jetzt legen wir einen Wert für MY_VARIABLE
fest.
Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:
MY_VARIABLE="Hello"
Jetzt führen wir den gleichen test -z
-Befehl erneut aus.
Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:
test -z "$MY_VARIABLE" && echo "MY_VARIABLE is empty or not set"
Diesmal hat MY_VARIABLE
den Wert "Hello", also ist es nicht leer. Die Bedingung test -z "$MY_VARIABLE"
ist falsch, und der echo
-Befehl wird nicht ausgeführt.
Sie sollten diesmal keine Ausgabe vom echo
-Befehl sehen.
Dies zeigt, wie test -z
verwendet werden kann, um zu prüfen, ob eine Variable leer ist oder nicht definiert ist. Dies ist ein grundlegendes Konzept, das in Shell-Skripten für bedingte Logik verwendet wird.