Jeśli korzystasz ze skryptów powłoki w systemie MacOS, być może zauważyłeś, że po ich wykonaniu pozostaje otwarte okno terminala. Można to łatwo naprawić w ustawieniach terminala.
Ta metoda działa wyłącznie w przypadku uruchamiania skryptów powłoki z zewnątrz bash, na przykład poprzez kliknięcie w Finderze lub przypisanie niestandardowego skrótu klawiszowego do programu. W przeciwnym razie wrócisz do wiersza poleceń. Możesz również wykorzystać polecenie killall Terminal w swoim skrypcie, aby zamknąć aplikację Terminal, ale to spowoduje zamknięcie wszystkich otwartych okien, co nie jest najlepszym rozwiązaniem.
Zmiana zachowania w ustawieniach profilu
Aby rozpocząć, otwórz aplikację Terminal z Docka lub z folderu Aplikacje, a następnie przejdź do ustawień, naciskając Command + przecinek.
W oknie ustawień wybierz zakładkę „Profile”. Domyślnie powinien być zaznaczony profil podstawowy (ten na górze). Po prawej stronie w ustawieniach kliknij na zakładkę „Shell” i znajdź rozwijane menu „When the shell exits”.
Domyślnie opcja w tym menu to „Nie zamykaj okna”, ale powinieneś zmienić ją na „Zamknij, jeśli powłoka zakończyła działanie poprawnie”.
Alternatywnie można ustawić opcję zamykania za każdym razem, ale wtedy nadal pojawi się komunikat o błędzie, jeśli skrypt zakończy się z niezerowym kodem. Warto pamiętać, że aby uzyskać takie działanie w każdym przypadku, skrypt może wymagać jawnego zakończenia za pomocą polecenia exit.
Jeśli uruchamiasz skrypt z Findera, polecenie wyjścia jest automatycznie dodawane do skryptu.
Alternatywnie, skorzystaj z iTerm
iTerm2 to popularny alternatywny terminal dla systemu macOS, który automatycznie zamyka okno po zakończeniu skryptu powłoki. Jeśli już korzystasz z iTerm jako domyślnego terminala, mogłeś zauważyć, że skrypty uruchamiane z Findera wciąż otwierają się w standardowym terminalu. To oznacza, że problem pozostaje, chyba że zmienisz ustawienia, aby skrypty otwierały się w iTerm.
Aby zmienić, które aplikacje otwierają skrypty, kliknij prawym przyciskiem myszy na skrypt w Finderze i wybierz „Uzyskaj informacje”.
W oknie pojawi się menu, które pozwoli ci zmienić aplikację otwierającą skrypt. Ustaw to na iTerm i kliknij „Zmień wszystko”, aby zastosować tę zmianę dla wszystkich skryptów.
Domyślnie, jeśli masz już otwarte okno iTerm, nowy skrypt uruchomi się w nowej karcie, a ta karta automatycznie zamknie się po zakończeniu pracy.