Exit-Befehl unter Linux

Unter Linux wird der Exit-Befehl verwendet, um die Shell (die aktuelle Anmeldesitzung) zu beenden, in der er ausgeführt wird. Außerdem wird, ähnlich wie bei einem C-Programm, der Exit-Befehl in Shell-Skripten verwendet, um das Skript zu beenden. Darüber hinaus gibt es einen Wert an den übergeordneten Prozess des Skripts zurück.

Was werden wir abdecken?

In dieser Anleitung sehen wir einen Überblick über den Exit-Befehl unter Linux und einige Anwendungsfälle.

Der Exit-Befehl und Exit-Status

Sie können auch den Exit-Befehl verwenden, um den Exit-Status der Shell anzugeben. Der Exit-Status ist ein numerischer Wert, der an den übergeordneten Prozess zurückgegeben wird, wenn die Shell beendet wird.

Der Exit-Status kann verwendet werden, um den Erfolg oder Misserfolg des Befehls anzuzeigen. Beispielsweise könnte ein Shell-Skript anhand des Exit-Status bestimmen, ob bestimmte Aktionen basierend auf dem Erfolg oder Misserfolg eines Befehls ausgeführt werden sollen.

Um den Exit-Status anzugeben, können Sie den Exit-Befehl gefolgt von einer Zahl verwenden. Beispielsweise zeigt Exit 0 einen erfolgreichen Exit an, während Exit 1 einen Fehler anzeigt.

Der Exit-Befehl akzeptiert ein einzelnes, optionales Argument, das zum Exit-Status des Skripts wird.

Wenn kein Argument übergeben wird, wird als Exit-Status standardmäßig der Exit-Status des zuletzt ausgeführten Befehls verwendet. Um den Exit-Status anzuzeigen, verwenden Sie das Echo „$?“ Befehl.

Beispiele für Exit-Codes (Exit-Status)

Der Exit-Befehl ist von entscheidender Bedeutung, um anzuzeigen, dass ein schwerwiegender Fehler aufgetreten ist, da die aufrufenden Prozesse normalerweise Exit-Codes ungleich Null als Fehlerfälle betrachten. Wenn Sie in Ihren Skripten eine allgemeine Fehlerfalle benötigen, versuchen Sie es mit dem Exit-Code-Snippet.

Sehen wir uns einige Beispiele für die Verwendung des Exit-Codes in einem Skript und auf einem Terminal an:

Beispiel 1: Verwendung des Exit-Befehls mit Dateiausdruck

Nehmen wir zunächst ein Beispiel für ein Skript:

#!/bin/bash
# Testdatei: Bewerten Sie den Status einer Datei
DATEI=/proc/uptime
Wenn [ -e „$FILE“ ]; dann # Überprüfen Sie die Existenz der Datei.
Wenn [ -f „$FILE“ ]; then # Überprüfen Sie, ob es sich um eine reguläre Datei handelt.
echo „$FILE ist eine reguläre Datei.“
fi
Wenn [ -b „$FILE“ ]; then # Prüft, ob es sich um eine Blockdatei handelt
echo „$FILE ist ein Blockgerät“
fi
anders
echo „$FILE ist weder eine reguläre noch eine Blockdatei oder existiert möglicherweise nicht“
Ausgang 1
fi
Ausfahrt

Das Skript führt eine Auswertung der Datei durch, die der Konstante zugeordnet ist „DATEI“ und gibt die Ergebnisse während der Ausführung aus.

Zunächst wird geprüft, ob es sich um eine reguläre Datei oder eine Blockdatei handelt. Wenn die Bedingung nicht erfüllt ist, wird die Nachricht im else-Block ausgegeben.

Der erste Exit-Befehl setzt den Exit-Status des Skripts im Falle eines Fehlers (Exit-Wert auf 1). Der zweite Exit-Befehl ist ein formaler Ausdruck. Das bedeutet, dass das Skript nach Abschluss seiner Ausführung den Exit-Status des letzten Befehls hat, in diesem Fall des Exit-Befehls. Dieser letzte Exit-Befehl führt zum Erfolg (Exit-Wert als 0):

Beispiel 2: Verwendung von True- und False-Befehlen mit dem Exit-Befehl

Darüber hinaus führt die Eingabe eines einfachen True- oder False-Arguments dazu, dass das Terminal mit dem Statuscode 0 beendet wird und 0 als True anzeigt. Wenn wir stattdessen eine falsche Aussage machen, ist der Exit-Status 1, da false mit Code 1 beendet wird. Schauen wir uns das mal auf praktische Weise an. Geben Sie zunächst den wahren Befehl aus und überprüfen Sie den Exit-Status:

$ stimmt

$ echo $?

Geben Sie nun den falschen Befehl aus und überprüfen Sie erneut den Exit-Status:

$ falsch

$ echo $?

Beispiel 3: Unterbrechen eines Skripts mit Strg+C

Wenn ein Benutzer Strg-C drückt, wird ein spezielles Signal namens SIGINT gesendet. Dadurch wird das Skript oder das laufende Programm unterbrochen und mit dem Code 130 beendet. Nehmen wir ein Beispiel: Angenommen, Sie haben mit dem Suchbefehl begonnen, eine Datei zu durchsuchen:

$ find / -empty

Die Suche dauert noch an. Dann haben Sie es plötzlich mit „Strg+C“ unterbrochen. Dies führt dazu, dass der Befehl mit dem Exit-Code 130 beendet wird.

Beispiel 4: Die Shell-Variable SHLVL und der Exit-Befehl

Mit der Shell-spezifischen Variablen SHLVL können Sie sehen, wie viele Ebenen tief in der Bash-Shell Sie sich befinden. Jede neue Shell-Sitzung, die in einem Terminal geöffnet wird, erhöht die Sitzungsanzahl, beginnend bei 1 für die erste Sitzung. Wenn SHLVL ist > 1, der Exit-Befehl schließt die aktuelle Sitzung. Ebenso, wenn die SHLVL ist = 1, der Exit-Befehl meldet Sie vom System ab.

Einfach ausgedrückt: Wenn Sie an der Eingabeaufforderung „exit“ eingeben und die Eingabetaste drücken, wird die Shell geschlossen (schließt die aktuelle Anmeldesitzung) und Sie kehren zu der Shell oder Eingabeaufforderung zurück, von der aus Sie sie gestartet haben.

Abschluss

Wir haben die unterschiedlichen Anwendungsfälle des Exit-Befehls und die jeweilige Interpretation des Exit-Status gesehen. Es gibt viele verschiedene Exit-Code-Nummern für unterschiedliche Zwecke. Beachten Sie, dass diese Exit-Codes Bash-spezifisch sind. Wenn Sie dazu neigen, andere Muscheln zu verwenden, z C-Schale oder tcshkönnen die Ergebnisse abweichen.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen