Prüfen der Leerheit eines Strings mit test -z
In diesem Schritt werden Sie lernen, wie Sie in Linux prüfen können, ob ein String leer ist, indem Sie den Befehl test
mit der Option -z
verwenden. Dies ist eine grundlegende Operation beim Umgang mit Strings in Shell-Skripten.
Der Befehl test
wird verwendet, um bedingte Ausdrücke auszuwerten. Die Option -z
prüft speziell, ob die Länge eines Strings null ist. Wenn der String leer ist, ist der Test wahr; andernfalls ist er falsch.
Probieren wir es in der Shell aus. Zunächst definieren wir eine Variable für einen leeren String. In Shell-Skripten definieren Sie eine Variable, indem Sie ihren Namen eingeben, gefolgt von einem Gleichheitszeichen (=
) und dann dem Wert. Es sollten keine Leerzeichen um das Gleichheitszeichen herum sein.
Geben Sie den folgenden Befehl ein, um eine Variable namens my_string
für einen leeren String zu definieren:
my_string=""
Nun verwenden wir den Befehl test -z
, um zu prüfen, ob my_string
leer ist. Der Befehl test
selbst erzeugt keine Ausgabe; sein Ergebnis wird verwendet, um den Ablauf eines Skripts zu steuern (dazu lernen Sie später mehr). Wir können jedoch sein Ergebnis sehen, indem wir den Exit-Status des vorherigen Befehls mit echo $?
überprüfen. Ein Exit-Status von 0
zeigt Erfolg (wahr) an, und ein nicht-null-Status zeigt Fehler (falsch) an.
Geben Sie den folgenden Befehl ein, um zu prüfen, ob my_string
leer ist:
test -z "$my_string"
Nachdem Sie den test
-Befehl ausgeführt haben, überprüfen Sie seinen Exit-Status:
echo $?
Da my_string
leer ist, sollte der test -z
-Befehl als wahr ausgewertet werden, und der echo $?
-Befehl sollte 0
ausgeben.
Nun definieren wir einen nicht-leeren String:
another_string="Hello"
Und prüfen, ob er leer ist:
test -z "$another_string"
Überprüfen Sie den Exit-Status:
echo $?
Diesmal sollte, da another_string
nicht leer ist, der test -z
-Befehl als falsch ausgewertet werden, und der echo $?
-Befehl sollte 1
ausgeben.
Das Verständnis, wie man leere Strings prüft, ist entscheidend für das Schreiben robuster Shell-Skripte, die verschiedene Eingaben korrekt verarbeiten.