Jak zamknąć aplikację Terminal za pomocą wiersza poleceń terminala („wyjście”) w systemie macOS Catalina
Chcę zamknąć terminal za pomocą wiersza poleceń terminala.
Ale kiedy wprowadzam exit
polecenie, 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
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 Terminal
zamiast exit
; jednak jest to brudne i nie polecam używania go w stosunku do tego, co przedstawiono powyżej.