Wie für die Verwendung von nicht definierter Variablen in einem Skript Kornshell zu warnen.

StackOverflow https://stackoverflow.com/questions/325424

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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top