Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux bash中的双引号_Linux_Bash_Shell - Fatal编程技术网

Linux 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部分精确地打印出我需要的命令,但是当我执行它时(下一行),我把它搞砸了 我怎样才能把这个修好 谢谢

我试图创建一个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演示--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