Изящное закрытие приложения из командной строки в Mac OS X

Anonim

Изящный выход из приложений обычно осуществляется через соответствующее меню приложения, выбирая «Выход», но графический интерфейс Mac, очевидно, недоступен из командной строки Mac OS X. Поэтому, когда большинство пользователей командной строки сталкиваются с необходимостью выйти из приложения, они завершите использование команды «kill», чтобы завершить процесс и принудительно закрыть приложение, вместо того, чтобы выдавать «мягкое» уничтожение.Очевидная проблема с завершением работы приложения заключается в том, что, пока оно выходит из приложения, вы можете потерять данные в этом процессе, и даже кеши восстановления сеанса могут оказаться недостаточными для восстановления данных. Таким образом, когда это возможно, пользователям обычно лучше выйти из приложения вместо этого корректно.

Хотя это малоизвестно, вы можете отправить стандартный сигнал выхода любому приложению с графическим интерфейсом 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, который мы рассмотрели некоторое время назад.

Изящное закрытие приложения из командной строки в Mac OS X