我正在尝试创建一个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
答案 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