Aufzucht und Hege von Shell-Scripts: Fehlerbehandlung

Alle Programme machen Fehler

Zumindest zeigen die Programme an, wenn sie die ihnen zugedachte Aufgabe nicht erfüllen konnten (z. B. wenn eine zu lesende Datei nicht vorhanden ist). Der Erfolg beim Aufruf von Programmen und Funktionen sollte also immer dann abgefragt werden, wenn die weiteren Schritte im eigenen Script von diesem Ergebnis abhängen. Der Returncode des vorhergehenden Kommandos wird in der Variablen $? gespeichert. Es gilt: Returncode = 0 heißt erfolgreiche Beendigung, alles ungleich 0 bedeutet einen Fehler. Man muss allerdings beachten, WIE die Programme Erfolg oder Fehler auslegen (z. B. ist es für sed im Normalfall kein Fehler, wenn keine Ersetzung erfolgte - das muss man mit anderen Mitteln prüfen). Näheres erfährt man mit? Richtig! man befehl.

Eure eigenen Scripts sollten diesem Standard folgen, also bei erfolgreicher Beendigung mit Returncode 0 zurückkommen, bei Fehlern im Programmablauf mit einem anderen Code. Ihr könnt selbst definieren, ob Eure Scripts unterschiedliche Returncodes liefern. Das vereinfacht eventuell die Arbeit von Programmen, die Eure Scripts aufrufen, es hängt aber davon ab, ob diese Eure Returncodes auswerten. Aber an den Schluss gehört immer ein exit 0, um den erfolgreichen Abschluss zu melden.