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