在osascript中传递bash变量时出错

时间:2016-03-18 03:38:31

标签: linux macos bash ssh osascript

使用osascript,我能够告诉终端应用程序在单独的终端窗口中打开ssh连接,但是,当我尝试在脚本中传递bash变量时,我遇到了错误。

这个脚本运行得很好:

osascript -e 'tell app "Terminal"
    do script "ssh user@hostname -p port -L 9999:localhost:80 -i keyfile"
end tell'
...more commands...

但运行像这样的脚本......

read -p "Port: " prt
read -p "Localhost port: " lhprt
osascript -e 'tell app "Terminal"
            do script "ssh user@hostname -p \"$prt\" -L \"$lhprt\":localhost:80 -i keyfile"
        end tell'
...more commands...

它没有传递变量,即在新终端窗口中传递的命令是

ssh user@hostname -p "$prt"

我如何格式化它以使我的bash变量能够通过?

1 个答案:

答案 0 :(得分:-1)

只需反转报价类型即可 使用单引号阻止shell扩展参数

编辑: 您也可以在变量周围关闭字符串。 即 '这是“字符串”中的'$ variable'。'