web-dev-qa-db-ja.com

.bash_profileで定義されたエイリアスを使用してコマンドラインからOSXアプリケーションを閉じるにはどうすればよいですか?

OSXアプリケーションに終了するように指示するために使用できる次のシェルスクリプトを見つけました。

#!/bin/sh

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

.bash_profileにいくつかの単純なエイリアスコマンドがあり、このスクリプトを使用する代わりに、そこに「quit」コマンドを追加したいと思います。以下を作成しましたが、機能しません。

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

私はコマンドをつぶしたと確信しています。何かアドバイス?

5

代わりに関数を使用してください:

function quit {
osascript <<EOF
  tell application "$*" to quit
EOF
}
7
devanjedi

エイリアスにパラメータを設定することはできません。エイリアスは厳密なテキスト置換を行い、「パラメータ」は最後になります。

パラメータを持つことができる関数を実行します。

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
Rich Homolka

エイリアスである必要がありますか?

pkill Application

たとえば、pkill Safari同じことをする必要があります

0
dajo