Linux bash中的双引号
我试图创建一个bash文件,该文件调用一个程序,该程序希望在两个双引号之间提交一个参数 看看我的文件内容Linux bash中的双引号,linux,bash,shell,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部分精确地打印出我需要的命令,但是当我执行它时(下一行),我把它搞砸了 我怎样才能把这个修好 谢谢
#!/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演示--s 9999999999“我的参数”-c yowsup/config
通话结果:
demos: error: unrecognized arguments: parameter
复制和粘贴回显结果:
INFO:yowsup.demos.sendclient.layer:Message sent
这样做的诀窍是,当双引号不在字符串中时,您将转义双引号。只有引号本身在字符串中时,才应转义引号。例如:
yowsup cli演示--s$1\“$2\”-c yowsup/config
无法工作,因为字符串已转义。使用
yowsup cli演示--s$1“$2”-c yowsup/config
相反但是,使用echo时,最好将其内容放入字符串中,如下所示:
echo.“/yowsup/yowsup cli演示--s$1\“$2\”-c yowsup/config”
即使这样,您也可以对字符串使用单引号,这样就不需要转义:
echo./yowsup/yowsup cli演示--s$1“$2”-c yowsup/config'
此外,您不需要
和s。在所有这些之后,最终结果是:
#!/bin/bash
echo './yowsup/yowsup-cli demos --s $1 "$2" -c yowsup/config'
./yowsup/yowsup-cli demos --s $1 "$2" -c yowsup/config
当它尝试执行时,输出是什么?错误?$1
和$2
是否可以包含空格、通配符或换行符?您是否尝试过使用-s
而不是-s
,短时间的谷歌搜索表明这是一个不受支持的选项?$1
和$2
的值是多少?你想通过的确切论点是什么?需要更多的细节。对我来说很好…问题用要求的信息更新。谢谢
#!/bin/bash
echo './yowsup/yowsup-cli demos --s $1 "$2" -c yowsup/config'
./yowsup/yowsup-cli demos --s $1 "$2" -c yowsup/config