Как закрыть приложение OS X из командной строки, используя псевдоним, определенный в моем .bash_profile?

3285
Michael Prescott

Я нашел следующий сценарий оболочки, который можно использовать, чтобы заставить приложение OS X выйти:

#!/bin/sh  echo | osascript <<EOF tell application "$*" quit end tell EOF 

У меня есть несколько простых команд псевдонимов в моем файле .bash_profile, и я хотел бы добавить команду «quit» вместо использования этого скрипта. Я создал следующее, но это не работает:

alias quit='osascript -e "quit application \"$1\""' 

Я уверен, что я напал на команду. Любой совет?

5

3 ответа на вопрос

7
devanjedi

Вместо этого используйте функцию:

function quit { osascript <<EOF tell application "$*" to quit EOF } 
`сказать приложению" $ * ", чтобы выйти`, более компактно. Daniel Beck 13 лет назад 0
@DanielBeck: я отредактировал его, чтобы удалить и другие избыточности, такие как определение псевдонима, единственной целью которого является вызов функции. Я оставил цитату в стиле HEREDOC, так как у меня были проблемы с альтернативами и я стал нетерпеливым;) iconoclast 11 лет назад 0
2
Rich Homolka

У псевдонимов не может быть параметров. Псевдонимы выполняют строгую подстановку текста, где «параметры» как бы заканчиваются в конце.

Я бы сделал функцию, которая может иметь параметры.

function quit { if [ $# -ne 0 ]; then echo "usage: quit _appname_" >&2 return fi echo | osascript <<EOF tell application "$1" quit end tell EOF } 

Извините, но я не могу проверить это и проверить сегодня (без Mac), но идея будет работать как функция.

0
dajo

это должен быть псевдоним?

pkill Application 

вроде, например, pkill Safariследует сделать то же самое

Ответ для правильного ответа, а не для другого вопроса, пожалуйста, прочитайте [как мне написать хороший ответ] (https://superuser.com/help/how-to-answer) и отредактируйте свой ответ yass 7 лет назад 0