Предотвращение запроса [процесс завершен] после завершения сценария терминала в Mac OS X


32

В моем текстовом редакторе я привязал комбинацию клавиш для развертывания моего кода, вызвав команду вроде

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

Этот сценарий развертывания загружает мой код на мой сервер и т. Д. Я использую «open», чтобы я мог видеть выходные данные в новом окне терминала в случае каких-либо ошибок. Очень удобно, но в конце концов окно терминала остается открытым с текстом «[Процесс завершен]».

Любой способ пропустить это и вместо этого просто автоматически закрыть окно?

Терминальный процесс завершен


1
Предположим, что вы установили Terminal для закрытия окна при выходе из оболочки, это звучит как проблема с Terminal. Вы пытались удалить файл настроек com.apple.Terminal.plistиз папки «Настройки» и пытались установить его заново?
Chealion

У вас все еще есть эта проблема?
Даниэль Бек

Ответы:


52

В окне « Настройки терминала» на панели « Профили» выберите используемый вами профиль (в его имени должно быть «default»), выберите «Подпанель Shell» и измените « Когда оболочка выйдет: » на « Закрыть, если оболочка вышла чисто ».

Он не будет скрывать [Process completed]сообщение, но закроет окно, если код завершения был успешным.


По какой-то причине я не могу изменить настройки в этом окне терминала. Если я изменю их в другом окне терминала и «использую по умолчанию», они все равно не будут использоваться в новом окне терминала. Вот как выглядит окно нового терминала: i.imgur.com/u3tk4.png
Bemmu

Сначала, чтобы ускорить тестирование, запустите следующее: echo 'say hello' > test; chmod +x test(он создаст исполняемый файл, который скажет «привет»), запустив open testили дважды щелкнув его в Finder, по умолчанию запустит его с терминалом. На скриншоте не выбрана ни одна из схем (не знаю, как, я не могу отменить выбор всех из них), поэтому выберите Basic, так как он помечен как «Default», и установите закрытие, затем попробуйте запустить скрипт.
Тиг

Спасибо, но это тоже не сработало: i.imgur.com/cCo49.png
Бемму

Какую версию ОС вы используете (не знаю, может ли это быть связано, я использую 10.6.4)? Может это из-за непрочитанной почты? Попробуйте использовать, mailчтобы прочитать это. Может быть, что-то не так с выходом из системы? Есть ли у вас ~/.bash_logoutфайл, если да, что внутри? Попробуйте запустить bash -c exit && echo 'ok'- вы должны увидеть «ок», также попробуйте запустить exitв новой оболочке - она ​​должна закрыть окно. Вы используете группы окон? i.imgur.com/thPNV.png
тиг

1
Не могли бы вы поместить команду «killall Terminal» в конец вашего скрипта или что-то еще? Я знаю, что это закроет окно, несмотря ни на что, но вы можете, по крайней мере, наблюдать за тем, что происходит во время выполнения скрипта (и вы также можете поместить вывод в журнал, на всякий случай).
jrc03c

0

Восстановление разрешений через Disk utilityприложение решило проблему для меня.

Я продолжал видеть ошибку в Consoleприложении:

20/08/2015 01:17:42.318 login[3291]: in pam_sm_open_session(): Unable to write the utmp record.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.