Shell -Skripte sind eine leistungsfähige Methode der Manipulation von Daten und Befehlen innerhalb des Unix-Betriebssystems . Null Variablen sind schwierig zu testen , wenn Sie die richtige Art und Weise , dies zu tun wissen . In anderen Sprachen , sind Variablen , die Dinge wie " " normalerweise als null eingestuft nicht im Fall der Unix-Shell , da sie unterschiedlich interpretiert werden. Mit NULL-Werte in Variablen ist oft ein nützlicher Indikator für die auftretenden Probleme in einem Skript , wenn Werte nicht automatisch zugewiesen , wie erwartet. Wenn dies der Fall Maßnahmen ergriffen werden können und Probleme behoben werden oder kann das Skript eine völlig andere Route zu nehmen , um das Problem zu lösen. Anleitung
1
Sie sicher, dass die Variable Test nicht , etwas zu setzen . Ein einfacher Weg, dies zu tun ist, um eine Variable, die nicht auf einen Wert wurde vor dem Test , indem sie nicht initialisiert die Variable wie var = "" zugewiesen testen. In diesem Beispiel "," würde als String ( nicht wirklich die Länge Null ) eingestuft werden und würde als Wert in Shell-Skript interpretiert werden.
2
Testen Sie die Variable für die Länge Null mit dem Standard- Unix-Shell Syntax, die ( in der Bourne-Shell -Version ) ist :
if [- z " $ var "]
dann
# weitere Befehle ...
fi
Das bedeutet, wenn der " $ var " variable keinen Länge , es ist ein Nullwert. Diese Aktion kann dann basierend auf dem Test in der " dann "-Anweisung folgt , die getroffen werden.
3
-Test eine Variable für einen Null-Wert , und wenn es nicht einen Wert enthalten , weisen eine in einem einzigen Befehl . Dies kann durch die Verwendung eines speziellen Shell-Befehl wie folgt erreicht werden :
varisnullornot = $ {var : - NULL}
In diesem Fall wird die " varisnullornot " Variable wird den Wert in die enthaltenen zugeordnet werden Variable " var ", wenn sie einen Wert hat. Wenn es nicht einen Wert haben dann die Variable " varisnullornot " wird das Wort " NULL ", die dann wie folgt getestet werden können zugeordnet werden :
if [" $ varisnullornot " = " NULL "]
dann
echo " var ist eine null variablen"
sonst
echo "\\ " varisnullornot \\ " " zugewiesen wird , den Wert in \\ enthaltenen " var \\ " "
fi