如何使用我的 .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应该做同样的事情

相关内容