Shells können ineinander verschachtelt sein: Ein grafisches Terminal startet eine Shell, eine SSH-Verbindung eine entfernte Shell und eine Shell kann eine weitere Shell starten. Wenn du eine davon verlässt, erhält normalerweise der Prozess wieder die Kontrolle, der diese aktuelle Shell gestartet hat.
Befehlszeile · Lektion 19
exit
Lerne, die aktuelle Shell zu verlassen und ihren Rückgabestatus für den Aufrufer festzulegen.
Die aktuelle Shell verlassen
Der Befehl exit fordert die aktuelle Shell auf, sich zu beenden:
$ exit
Ist diese Shell der Hauptprozess in einem grafischen Terminal-Tab, kann sich der Tab entsprechend den Terminaleinstellungen schließen. In einer SSH-Sitzung kehrst du nach dem Verlassen der entfernten Shell normalerweise zur lokalen Shell zurück. Hast du eine verschachtelte Shell gestartet, führt exit zur übergeordneten Shell zurück.
Du hast Bash innerhalb einer anderen Shell gestartet und möchtest nun zur übergeordneten Shell zurückkehren. Welchen Befehl führst du in der verschachtelten Bash-Sitzung aus?
Einen Beendigungsstatus zurückgeben
Mit einem optionalen numerischen Argument legst du den Status fest, den die Shell an ihren Aufrufer zurückgibt:
$ exit 0
Konventionsgemäß bedeutet 0 Erfolg; ein von null verschiedener Wert steht für einen Fehler oder eine andere vom Programm definierte Bedingung. Erhält Bash kein numerisches Argument, beendet sie sich mit dem Status des letzten Befehls vor exit.
Welcher Befehl beendet die aktuelle Shell und meldet ihrem Aufrufer ausdrücklich Erfolg?
Welchen Status gibt exit in Bash zurück, wenn du keine Zahl angibst?
logout in einer Login-Shell verwenden
Das Bash-Builtin logout beendet eine Login-Shell:
$ logout
In einer Bash-Shell ohne Login meldet logout, dass es sich nicht um eine Login-Shell handelt. Verwende dort stattdessen exit.
Welches Bash-Builtin ist speziell zum Verlassen einer Login-Shell vorgesehen?
Ctrl+D verwenden oder ein Terminal schließen
An einer leeren interaktiven Eingabeaufforderung liefert Ctrl+D normalerweise das Dateiende-Eingabezeichen des Terminals. Bash deutet diesen Zustand häufig als Aufforderung zum Beenden. Es handelt sich nicht um ein Signal, und Shell-Einstellungen wie Bashs ignoreeof können das Verhalten ändern.
Beim Schließen eines grafischen Terminalfensters fordert die Terminalanwendung ihre Prozesse zum Beenden auf, was sich auf laufende Aufgaben auswirken kann. Bevorzuge nach Möglichkeit ein geordnetes exit und prüfe vor dem Schließen, ob noch Arbeit aktiv ist.
Lektion abgeschlossen
Sie haben exit abgeschlossen
Du kannst nun die aktuelle Shell verlassen und ihren Abschlussstatus mitteilen.
Kehre mit
exitzum Aufrufer der aktuellen Shell zurück.Verwende
0für Erfolg und andernfalls einen definierten, von null verschiedenen Status.Verstehe den Status eines
exitohne Zahlenargument.Verwende
logoutnur für eine Login-Shell.Erkenne
Ctrl+Dals Dateiende-Eingabe und nicht als Signal.
Lernfortschritt speichern
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen