簡體   English   中英

bash中的雙引號

[英]Double quotes in bash

我正在嘗試創建一個bash文件,該bash文件調用一個程序,期望該程序在兩個雙引號之間提交參數。

看一下我的文件內容。

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

回聲部分精確地打印了我需要的命令,但是當我執行它時(下一行),我把它弄亂了。

如何解決此問題?

謝謝!

我需要這樣稱呼它:

./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/yowsup-cli demos --s $1 "$2" -c yowsup/config &

這可以解決問題

當雙引號不在字符串中時,您要轉義它們。 僅當引號本身是字符串時,才應轉義。 例如:
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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM