Como eu fecho um aplicativo OS X a partir da linha de comando usando um alias definido no meu .bash_profile?

5

Eu encontrei o seguinte script de shell que pode ser usado para dizer a um aplicativo do OS X para sair:

#!/bin/sh

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

Eu tenho vários comandos alias simples no meu .bash_profile e gostaria de adicionar um comando "quit" lá em vez de usar este script. Eu criei o seguinte, mas não funciona:

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

Eu tenho certeza que eu munged o comando. Algum conselho?

    
por Michael Prescott 15.12.2010 / 21:50

3 respostas

7

Use uma função:

function quit {
osascript <<EOF
  tell application "$*" to quit
EOF
}
    
por 15.12.2010 / 22:50
2

Os aliases não podem ter parâmetros. Os aliases fazem uma substituição estrita de texto, onde os 'parâmetros' acabariam no final.

Eu faria uma função, que pode ter parâmetros.

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

Desculpe, mas não posso testar isso e verificar hoje (sem Mac), mas a ideia funcionaria como uma função.

    
por 15.12.2010 / 22:41
0

tem que ser um alias?

pkill Application

como, por exemplo, pkill Safari deve fazer o mesmo

    
por 14.03.2017 / 15:18