Unikanie pytania [proces zakończony] po zakończeniu skryptu terminala w systemie Mac OS X


29

W moim edytorze tekstu powiązałem klawisz skrótu, aby wdrożyć mój kod, wywołując polecenie takie jak

/usr/bin/open /Users/blahblah/run_deploy

Ten skrypt instalacyjny przesyła mój kod na mój serwer itp. Używam „open”, dzięki czemu widzę dane wyjściowe w nowym oknie terminala na wypadek wystąpienia błędów. Bardzo wygodne, ale w końcu pozostawia okno terminala otwarte z tekstem „[Proces zakończony]”.

Dowolny sposób na pominięcie tego i zamiast tego automatyczne zamknięcie okna?

Terminal process completed


1
Daj, że ustawiłeś Terminal tak, aby zamykał okno, gdy powłoka kończy działanie, brzmi to jak problem z Terminalem. Próbowałeś usunąć plik preferencji com.apple.Terminal.plist z folderu Preferencje i spróbowałeś go ponownie ustawić?
Chealion

Czy nadal masz ten problem?
Daniel Beck

Odpowiedzi:


44

W terminalu Preferencje , w Profile okienko wybierz profil, którego używasz (pod jego nazwą powinien pojawić się „domyślny”), wybierz pod-panel Muszla i zmień « Po zamknięciu powłoki: " do " Zamknij, jeśli powłoka wyszła czysto ».

Nie ukryje [Process completed] wiadomość, ale zamknie okno, jeśli kod wyjścia powiódł się.


Z jakiegoś powodu nie mogę zmienić ustawień w tym oknie terminala. Jeśli zmienię je w innym oknie terminala i „użyj jako domyślne”, nadal nie będą używane w nowym oknie terminala. Oto jak wygląda nowe okno terminala: i.imgur.com/u3tk4.png
Bemmu

Po pierwsze, aby przyspieszyć testowanie, wykonaj następujące czynności: echo 'say hello' > test; chmod +x test (utworzy plik wykonywalny, który powie „cześć”), działa open test lub dwukrotne kliknięcie w Finderze domyślnie uruchomi go z terminalem. Na zrzucie ekranu nie wybrano żadnego schematu (nie wiem jak, nie mogę odznaczyć wszystkich), więc wybierz Podstawowy, ponieważ jest on oznaczony jako «Domyślny», i ustaw ustawienie zamykania, a następnie spróbuj uruchomić skrypt.
tig

Dzięki, ale to też nie zadziałało: i.imgur.com/cCo49.png
Bemmu

Której wersji systemu operacyjnego używasz (nie wiesz, czy może to być powiązane, używam 10.6.4)? Może to z powodu nieprzeczytanej poczty? Spróbuj użyć mail czytać. Może coś jest nie tak z wylogowaniem? Czy masz ~/.bash_logout plik, jeśli tak, co jest w środku? Spróbuj uruchomić bash -c exit && echo 'ok' - powinieneś zobaczyć „ok”, spróbuj także uruchomić exit w nowej powłoce - powinno zamknąć okno. Czy korzystasz z grup okien? i.imgur.com/thPNV.png
tig

1
Czy możesz umieścić polecenie „killall Terminal” na końcu skryptu lub coś takiego? Wiem, że zamknie okno bez względu na wszystko, ale możesz przynajmniej obserwować, co się dzieje w trakcie wykonywania skryptu (a na wszelki wypadek możesz również wypchnąć wynik do dziennika).
jrc03c

0

Naprawianie uprawnień przez Disk utility aplikacja rozwiązała problem dla mnie.

Ciągle widziałem błąd w Console aplikacja:

20/08/2015 01:17:42.318 login[3291]: in pam_sm_open_session(): Unable to write the utmp record.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.