Jak zamknąć aplikację Terminal za pomocą wiersza poleceń terminala („wyjście”) w systemie macOS Catalina

Aug 16 2020

Chcę zamknąć terminal za pomocą wiersza poleceń terminala.

Ale kiedy wprowadzam exitpolecenie, Terminal tylko wylogowuje sesję, ale nie zamyka okna aplikacji. Czy jest jakiś sposób na zamknięcie aplikacji.

Używam systemu macOS Catalina 10.15.6.

Odpowiedzi

17 user3439894 Aug 16 2020 at 10:50

W Terminal > Preferencje… > Profile > Powłoka , domyślne ustawienie Kiedy powłoka kończy pracę: to: Nie zamykaj okna

Można to zmienić na: Zamknij okno

Następnie exit polecenie zamknie okno .


Edytuj, aby odpowiedzieć na edytowane pytanie:

Jeśli chcesz zamknąć okno za pomocą exit polecenia , możesz zrobić to, co sugerowano w pierwszej części tej odpowiedzi, jeśli jednak chcesz również automatycznie i wdzięcznie zamknąć terminal , jako część skryptu lub zamiast exit polecenia, jak wyświetlone w pytaniu, możesz wykonać następujące czynności:

Najpierw utwórz prostą aplikację AppleScript , używając następującego przykładowego kodu AppleScript w edytorze skryptów :

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

Zapisanie go jako aplikacji o nazwie np. QuitTerminal w głównym folderze Aplikacje .

Po zapisaniu otwórz Terminal, a następnie otwórz np. QuitTerminal w celu uruchomienia uprawnień zezwalających w Preferencjach systemowych > Bezpieczeństwo i prywatność > Prywatność

Gdy to zrobisz, możesz użyć następującego polecenia na końcu swojego skryptu lub zamiast exit polecenia :

open -a "OuitTerminal"

Przykład oparty na poleceniu podanym w Twoim pytaniu:

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

Będzie to tylko blisko Terminal jeśli nie ma uruchomionych procesów w każdym z okien w Terminalu .

Uwaga: Jeśli nie chcesz widzieć np. Programu OuitTerminal w Docku , możesz zmodyfikować aplikację za pomocą następującego polecenia w Terminalu :

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

Jeśli nie obchodzi Cię żaden działający proces, możesz wymusić zamknięcie Terminala za pomocą skryptu lub polecenia, używając killall Terminalzamiast exit; jednak jest to brudne i nie polecam używania go w stosunku do tego, co przedstawiono powyżej.