如何使用 .bash_profile 中定義的別名從命令列關閉 OS X 應用程式?

如何使用 .bash_profile 中定義的別名從命令列關閉 OS X 應用程式?

我發現以下 shell 腳本可用於告訴 OS X 應用程式退出:

#!/bin/sh

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

我的 .bash_profile 中有幾個簡單的別名命令,並且想要在其中新增一個「退出」命令,而不是使用此腳本。我創建了以下內容,但它不起作用:

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

我確定我已經執行了命令。有什麼建議嗎?

答案1

使用函數代替:

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

答案2

別名不能有參數。別名會進行嚴格的文字替換,其中「參數」會出現在最後。

我會做一個可以有參數的函數。

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

抱歉,但我今天無法對此進行測試和驗證(沒有 Mac),但這個想法可以作為一個函數來工作。

答案3

它必須是別名嗎?

pkill Application

例如,pkill Safari應該做同樣的事情

相關內容