Wie für die Verwendung von nicht definierter Variablen in einem Skript Kornshell zu warnen.
Frage
Gibt es eine Möglichkeit Fehler oder Warnungen in einem Skript Kornshell (KSH) zu werfen die Verwendung von nicht definierter Variablen zu verhindern? Nehmen wir an, ich einen temporären Ordner, die ich entfernen möchten.
TEMP_FILES_DIR='/app/myapp/tmp'
rm -Rf $TEMP_FILE_DIR #notice the misspelling
Wie diese Art von Fehlern zu vermeiden, bevor sie tatsächlich geschehen?
Ich weiß, dass das Skript für die Datei Existenz und leere Zeichenfolge überprüfen, bevor zu entfernen versuchen, dies nur ein dummes Beispiel ist, einen Fehler zu veranschaulichen, die mit einigen Warnungen hätten vermieden werden konnten. Ich weiß nicht, ob diese Funktion in KSH existiert. Wenn es nicht vorhanden ist, wie macht man es auf?
Lösung
Der Befehl
set -u
Wird POSIX verursachen sh (1) und seine Derivate zu meckern, wenn ein Versuch, eine unset Variable zu erweitern gemacht wird.
Beispiel:
$ echo $foo $ set -u $ echo $foo sh: foo: parameter not set
Andere Tipps
Sie können die Variable überprüfen Inhalte für, dh nicht zu sein ‚‘, und Druck eine Nachricht wie „die Variable ist leer“.
Doch das ist noch nicht PEBCAK Fehler wie diese beheben gehen -. Alles, was Sie wissen würde, ist, dass nichts passiert