exit(1) exit(1)
NAME
exit - Shell-Prozedur beenden
SYNTAX
exit [endestatus]
BESCHREIBUNG
Das in die Shell sh(1) bzw. ksh(1) eingebaute Kommando exit beendet
Shell-Prozeduren. Beim Aufruf können Sie mit einer Zahl den Endestatus
der entsprechenden Shell-Prozedur festlegen.
Auch ohne Aufruf von exit beenden sich Shell-Prozeduren:
- wenn das letzte Kommando ausgeführt ist, d. h. wenn die ausführende
Shell Dateiende (EOF) erkennt. Endestatus ist der Endestatus des
zuletzt ausgeführten Kommandos.
- wenn die ausführende Shell ein Kommando nicht findet oder einen
Syntaxfehler erkennt. Endestatus ist ein Wert ungleich 0.
Wenn Sie das Kommando exit im Dialog eingeben, wird die aktuelle Shell
beendet.
ARGUMENTE
endestatus
Eine Zahl zwischen 0 und 127. Das ist der Endestatus, mit dem die
Shell-Prozedur beendet wird.
Mit dem Kommando echo $? können Sie den Endestatus abfragen.
endestatus nicht angegeben:
Endestatus ist der Endestatus des Kommandos, das vor dem Aufruf
von exit ausgeführt wurde.
BEISPIELE
Beispiel 1
Das Kommando false läßt sich durch folgende Shell-Prozedur realisie-
ren:
: Shell-Version des Kommandos false
: Endestatus immer 1
exit 1
Beispiel 2
Die beiden Shell-Prozeduren ende und abfrage sollen zeigen, wie der
Endestatus ausgewertet werden kann:
- Die Datei ende hat folgenden Inhalt:
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
exit(1) exit(1)
: Aufruf mit sh ende datei
if [ -f "$1" ]
then exit 2
elif [ -d "$1" ]
then exit 3
else exit 4
fi
- Die Datei abfrage hat folgenden Inhalt:
: Aufruf mit sh abfrage datei
sh ende "$1"
case $? in
2) echo Inhalt der Datei $1:; cat $1;;
3) echo Inhalt von $1:; ls -l $1|pg;;
4) echo Die Eingabe $1 hat für diese Prozedur keinen Sinn!
esac
Die Shell-Prozedur abfrage wird gestartet:
$ sh abfrage .profile
Inhalt der Datei .profile:
HOME=/home1/rosa/src
export HOME
.
.
.
Die Shell-Prozedur abfrage ruft die Prozedur ende auf. Diese Prozedur
liefert als Endestatus den Wert 2 zurück, da .profile eine einfache
Datei ist. Anschließend werden in der case-Anweisung die Kommandos
ausgeführt, die bei dem entsprechenden Muster 2 angegeben sind.
Den Inhalt dieser beiden Shell-Prozeduren kann man nicht ohne weiteres
in eine einzige Datei schreiben, denn das Kommando exit beendet die
Prozedur.
Die Shell-Prozedur endeaktion zeigt, wie der Endestatus innerhalb
einer Prozedur ausgewertet werden kann:
: Aufruf mit sh endeaktion datei
(if [ -f "$1" ]
then exit 2
elif [ -d "$1" ]
then exit 3
else exit 4
fi)
case $? in
2) echo Inhalt der Datei $1:; cat $1;;
3) echo Inhalt von $1:; ls -l $1|pg;;
4) echo Die Eingabe $1 hat für diese Prozedur keinen Sinn!
esac
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
exit(1) exit(1)
Die runden Klammern um die if-Anweisung bewirken, daß eine Subshell
aufgerufen wird. Diese Subshell beendet sich mit dem Endestatus, der
bei dem betreffenden Kommando exit angegeben ist. Anschließend meldet
sich die übergeordnete Shell zurück; das ist die Shell, die die Proze-
dur endeaktion bearbeitet. Sie führt die restlichen Kommandos der Pro-
zedur aus.
HINWEISE
Bei der Verwendung von exit können sich Abweichungen im Verhalten
ergeben, je nachdem, welche Shell zugrundeliegt. Die möglichen Abwei-
chungen sind nicht eigens beschrieben.
SIEHE AUCH
false(1), ksh(1), sh(1), exit(2).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98