Wenn ein Kommando in der bash ausgeführt wurde, gibt es einen 1-Byte-Wert als exit-Status zurück.
Dieser exit-Status kann also Werte von 0...255 annehmen und wird in der shell-Variable $? abgelegt.
Im Allgemeinen besitzt dieser exit-Status bei der fehlerfreien Ausführung eines Kommandos den Wert 0 (Null).
Dieser Wert wird durch die Verzweigungs- und Schleifenbefehle als logisch wahr (true) interpretiert.
Sollte der Aufruf eines Kommandos fehlerhaft sein, oder das Kommando einen Fehler erzeugen oder abgebrochen werden, so ist der exit-Status größer als Null.
Der genaue Wert gibt oft noch genauere Informationen zur Fehlerursache.
Ist der exit-Status größer als Null, so wird das durch die Verzweigungs- und Schleifenbefehle als logisch falsch (false) interpretiert.
Das bedeutet, dass die Entscheidungen in den Verzweigungs- und Schleifenbefehlen selbst wieder eigenständige Kommandos sind und kein Bestandteil des Verzweigungs- und Schleifenbefehls selbst.
Damit erreicht man eine sehr hohe Flexibilität, da die Verzweigungs- und Sprungbedingungen nicht auf wenige, durch den Verzweigungs- oder Schleifenbefehl vordefinierte Operatoren beschränkt bleibt, da so auch eigene Kommandos und Scripte als Bedingung verwendet werden können.
Um Zahlen-, Datei- und Stringtests durchzuführen, gibt es verschiedene interne und externe Kommandos, wie test, [ oder [[ usw.
Diese sind ebenfalls eigenständige Kommandos, die mit Hilfe von Vergleichsoperatoren eine Bedingung testen und je nachdem, ob die Bedingung erfüllt ist oder nicht, einen entsprechenden exit-code erzeugen.
Auch ein selbst geschriebenes Shell-Script liefert einen exit-Status an die aufrufende bash zurück.
Im Allgemeinen entspricht dieser dem exit-Status des letzten ausgeführten Kommandos.
Mit dem Kommando exit [Bytewert] kann man ein Script beenden und einen exit-Status-Wert gezielt übergeben.
In Shellfunktionen erreicht man das selbe mit dem Kommando return.
|
Sollte jemand seine Rechte durch eine Veröffentlichung auf dieser oder einer anderen meiner Seiten verletzt sehen, bitte ich um sofortige Kontaktaufnahme.
Ich werde die entsprechenden Inhalte umgehend entfernen.
Somit sind sowohl ein anwaltlicher Rat als auch eine kostenpflichtige Abmahnung nicht erforderlich!
Weiterhin weise ich darauf hin, dass der Inhalt verlinkter Seiten nicht in meiner redaktionellen Verantwortung liegt. |
www.schlaefendorf.de 2012