So schließen Sie die Terminal-App über die Terminal-Befehlszeile („exit“) in macOS Catalina

Aug 16 2020

Ich möchte das Terminal über die Terminal-Befehlszeile schließen.

Wenn ich den exitBefehl eingebe, meldet Terminal die Sitzung nur ab, schließt jedoch das App-Fenster nicht. Gibt es eine Möglichkeit, die App auch zu schließen?

Ich verwende macOS Catalina 10.15.6.

Antworten

17 user3439894 Aug 16 2020 at 10:50

Unter Terminal > Einstellungen… > Profile > Shell lautet die Standardeinstellung für Beim Beenden der Shell: Schließen Sie das Fenster nicht

Dies kann geändert werden in: Schließen Sie das Fenster

Dann schließt der exit Befehl das Fenster .


Bearbeiten, um die bearbeitete Frage zu beantworten:

Wenn Sie das Fenster mit dem exit Befehl schließen möchten, können Sie wie im ersten Teil dieser Antwort vorgeschlagen vorgehen. Wenn Sie jedoch auch Terminal automatisch und ordnungsgemäß schließen möchten , als Teil Ihres Skripts oder anstelle des exit Befehls als In Ihrer Frage gezeigt, können Sie Folgendes tun:

Erstellen Sie zunächst eine einfache AppleScript- Anwendung mit dem folgenden Beispiel- AppleScript- Code im Skript-Editor :

tell application "Terminal" to if (busy of windows) does not contain true then quit

Speichern als Anwendung mit dem Namen QuitTerminal im Hauptordner " Anwendungen " .

Öffnen Sie nach dem Speichern das Terminal und anschließend z. B. QuitTerminal , um das Zulassen von Berechtigungen unter Systemeinstellungen > Sicherheit und Datenschutz > Datenschutz auszulösen

Sobald dies erledigt ist, können Sie am Ende Ihres Skripts oder anstelle des exit Befehls Folgendes verwenden :

open -a "OuitTerminal"

Beispiel basierend auf dem in Ihrer Frage gezeigten Befehl :

/Users/harikrishna/Desktop/youtube.sh ; open -a "OuitTerminal"

Dadurch wird Terminal nur geschlossen, wenn in keinem der Fenster in Terminal Prozesse ausgeführt werden .

Hinweis: Wenn Sie z. B. OuitTerminal nicht im Dock anzeigen möchten , können Sie die Anwendung mit dem folgenden Befehl im Terminal ändern :

defaults write '/Applications/OuitTerminal.app/Contents/Info.plist' LSUIElement -bool yes

Wenn Sie sich nicht für einen laufenden Prozess interessieren, können Sie das Schließen des Terminals aus dem Skript oder Befehl erzwingen, indem Sie killall Terminalanstelle von exit; Dies ist jedoch chaotisch und ich empfehle nicht, es über die oben dargestellten zu verwenden.