bash脚本命令的字符串连接

时间:2010-07-12 20:24:43

标签: bash

我正在尝试在此格式的~/.bashrc中写一个别名:

alias a="foo; osascript -e 'tell application "Terminal" to do script "bar"; baz"

(其中bar在新的终端窗口中启动,按照this question),但此字符串看起来不像它将解析。我尝试过字符串插值(${str}),但问题似乎无法解决。

2 个答案:

答案 0 :(得分:1)

alias a="foo; osascript -e 'tell application \"Terminal\" to do script \"bar\"'; baz"

答案 1 :(得分:0)

令人惊讶的是,字符串似乎写得很好。只要它在一行上,Bash就不会按照你期望的方式终止双引号字符串。

更新:正如Ignacio指出的那样,写入的字符串不会保留其中的双引号。即:

# Good:
a="foo; osascript -e 'tell application \"Terminal\" to do script \"bar\"'; baz"
echo $a
> foo; osascript -e 'tell application "Terminal" to do script "bar"'; baz

# Not so good:
b="foo; osascript -e 'tell application "Terminal" to do script "bar"'; baz"
echo $b
> foo; osascript -e 'tell application Terminal to do script bar'; baz