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

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

#!/bin/sh

echo | osascript <<EOF
tell application "$*"
  quit
end tell
EOF

Я имею несколько простых команд псевдонима в своем .bash_profile и хотел бы добавить команду "выхода" там вместо того, чтобы использовать этот сценарий. Я создал следующее, но это не работает:

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

Я уверен, что портил команду. Совет?

5
задан 05.03.2013, 15:30

2 ответа

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

function quit {
osascript <<EOF
  tell application "$*" to quit
EOF
}
7
ответ дан 07.12.2019, 17:13

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

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

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

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

2
ответ дан 07.12.2019, 17:13

Теги

Похожие вопросы