Home · Kontakt · Impressum
contents index previous up next
Next: 15.3 Grundstrukturen Up: 15.2 Skripte Previous: 15.2.1 Ausführen von Skripten


15.2.2 Rückgabewerte

Für Shell-Skripte ist es sehr wichtig festzustellen, ob die Kommandos ihre Aufgabe erfolgreich abgeschlossen haben. Die meisten Kommandos geben einen Rückgabewert oder Fehlercode zurück. Dieser Wert ist eine simple Ganzzahl und seine Bedeutung hängt von dem verwendeten Programm ab. Bei allen Programmen bedeutet die Zahl `0', daß der Befehl erfolgreich durchgeführt wurde. Eine von Null verschiedene Zahl hingegen deutet auf ein Problem hin.

Der Fehlercode wird in der Variablen `?' gespeichert. Da sie für jedes Kommando neu gesetzt wird, muß sie direkt nach der Kommandoausführung ausgelesen werden. Sie können dies direkt am Prompt nachvollziehen.

ole@enterprise:~/test> cd next
bash: cd: next: Datei oder Verzeichnis nicht gefunden
ole@enterprise:~/test> echo $?
1
ole@enterprise:~/test> echo $?
0

Bei der ersten Ausgabe wird die fehlerhafte Ausführung des Kommandos cd durch die Zahl 1 angezeigt. Die zweite Ausgabe der Variablen `?' bezieht sich auf den Erfolg des ersten echo Befehls.

Befehle können aus mehreren Gründen sich erfolglos beenden. Viele Befehle besitzen daher auch mehr als einen Fehlercode. Schauen Sie sich doch die Verhaltensweise von grep (7.7.1) einmal an.

ole@enterprise:~/test> grep bash shebang
#!/bin/bash
ole@enterprise:~/test> echo $?
0
ole@enterprise:~/test> grep tapico shebang
ole@enterprise:~/test> echo $?
1
ole@enterprise:~/test> grep bash sheebang
grep: sheebang: Datei oder Verzeichnis nicht gefunden
ole@enterprise:~/test> echo $?
2

Wenn grep einen oder mehrere Treffer erzielt, dann wird der Fehlercode 0 ausgegeben. Ist der Befehl soweit richtig, aber grep findet keine passende Zeichenkette, dann kommt der Fehlercode 1. Kommt es zu einem richtigen Fehler, wie z. B. einer nichtexistenten Datei, dann wird der Fehlercode 2 zurückgegeben.


contents index previous up next
Next: 15.3 Grundstrukturen Up: 15.2 Skripte Previous: 15.2.1 Ausführen von Skripten
  © 2004 by IT-Dozent Ole Vanhoefer · Zum Seitenanfang