使用osascript创建bash脚本并传递var

时间:2014-11-18 15:59:39

标签: macos bash osascript

我还没有真正做过bash脚本的方式,所以任何帮助都会受到赞赏!

我已将此功能添加到我的.bash_profile:

function test()
{
    osascript -e 'tell app "System Events" to display dialog "$1"'
    echo "my name is $1"
}

第二行工作正常,但第一行只会在对话框中显示$ 1。我已尝试过该行的一些变体以及:

osascript <<EOD
  tell app "System Events" to display dialog "$1"
EOD

我是否需要在osascript行上连接$1,或者有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

为了扩展变量$1,它必须在双引号内。外部引号是单引号,这阻止了扩展。试试这个:

test() {
    osascript -e "tell app \"System Events\" to display dialog \"$1\""
    echo "my name is $1"
}

内部双引号被转义,这意味着它们将被正确传递。

我还删除了function关键字,因为它没有用处(除了让你的脚本与其他shell不兼容)。