bash中双引号

时间:2015-03-22 12:35:06

标签: linux bash shell

我正在尝试创建一个bash文件,该文件调用一个程序,该程序需要在两个双引号之间提交参数。

查看我的文件内容。

#!/bin/bash
echo ./yowsup/yowsup-cli demos --s $1 \"$2\" -c yowsup/config &
./yowsup/yowsup-cli demos --s $1 \"$2\" -c yowsup/config &

echo部分打印出我需要的命令,但是当我执行它时(下一行),我搞砸了。

我怎样才能解决这个问题?

谢谢!

我需要这样称呼它:

./yowsup/yowsup-cli demos --s 9999999999 "my parameter" -c yowsup/config

回声结果:

./ yowsup / yowsup-cli demos --s 9999999999"我的参数" -c yowsup / config

通话结果:

demos: error: unrecognized arguments: parameter

复制并粘贴回显结果:

INFO:yowsup.demos.sendclient.layer:Message sent

2 个答案:

答案 0 :(得分:0)

./yowsup/yowsup-cli demos --s $1 "$2" -c yowsup/config &

这就是诀窍

答案 1 :(得分:0)

当他们不在字符串中时,您可以使用双引号。你应该只在他们自己在一个字符串中时引用它们。例如:
yowsup-cli demos --s $1 \"$2\" -c yowsup/config
因为字符串被转义而无法工作。使用
yowsup-cli demos --s $1 "$2" -c yowsup/config
代替。但是,对于echo,将其内容放在字符串中是一种很好的做法,如下所示:
echo "./yowsup/yowsup-cli demos --s $1 \"$2\" -c yowsup/config"
即使这样,你也可以使用单引号和字符串,这样你就不需要逃避:
echo './yowsup/yowsup-cli demos --s $1 "$2" -c yowsup/config'
此外,您不需要&。毕竟,最终的结果是:

#!/bin/bash
echo './yowsup/yowsup-cli demos --s $1 "$2" -c yowsup/config'
./yowsup/yowsup-cli demos --s $1 "$2" -c yowsup/config