Хотя это не особенно хорошо известно, вы можете отправить стандартный сигнал выхода в любое приложение графического интерфейса Mac OS X из командной строки с помощью команды osascript. Он довольно прост в использовании, и это мы рассмотрим здесь.
Как грациозно закрыть приложения из терминала в Mac OS X с помощью osascript
Опять же, это приведет к стандартному сигналу выхода к приложению, а не к сигналу kill (terminate). Это также означает, что целевое приложение не будет принудительно завершено, если есть несохраненные данные без запроса пользователя для ввода (если у вас нет автоматической настройки сохранения, включенной для Mac OS X, и приложение не запрашивает пользователя в результате).
Основной синтаксис отправки стандартного сигнала выхода в приложение GUI в Mac OS X из терминала выглядит следующим образом:
osascript -e ‘quit app «APPLICATIONNAME»‘
Например, чтобы выйти из Календаря из командной строки, замените APPLICATIONNAME на «Календарь»,
osascript -e ‘quit app «Календарь»‘
Поскольку календарь синхронизируется и не имеет опции сохранения, при попытке закрыть приложение вам не будет предоставлен стандартный диалог сохранения. С приложениями, у которых есть параметры сохранения, и когда Mac OS X отключена автоматически, диалоговое окно сохранения будет вызвано, как обычно.
Еще одно преимущество использования osascript для закрывания приложений изящно состоит в том, что вы можете предоставить фактическое имя приложения, которое намного легче запомнить и немного более удобное для пользователя, чем полностью полагаться на номера идентификаторов процессов, которые идут с командой kill. Обратите внимание, что современные версии Mac OS X предлагают улучшенную команду kill, более удобную для пользователя, известную как pkill.
Вы можете использовать это в сценарии bash, чтобы закрыть приложения из командной строки или даже изменить его, чтобы вести себя так же, как «Завершить все открытые приложения» с помощью трюка Automator, который мы закрыли некоторое время назад.