1

我之前在 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

我需要$1在 osascript 行上连接某种方式,还是有更好的方法来做到这一点?

4

1 回答 1

2

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

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

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

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

于 2014-11-18T16:01:40.280 回答