[英]Bash script double quote escaping
我正在嘗試使用變量作為參數在 bash 腳本中運行命令,但我未能正確轉義引號。 這是我所擁有的:
vsnames=$(comm -13 --nocheck-order $cur_ha_stat_report $old_ha_stat_report | awk -F\| '{print $1}' | tr '\r\n' ' ')
create event type=0xfff00033 text="$vsnames" mh=$dev_mh &
其中 vsnames 是一個用空格分隔單詞的字符串。 當我運行腳本時,這就是我得到的:
+ vsnames='VS1 VS2 '
+ create event type=0xfff00033 'text=VS1 VS2 ' mh=xxx
如何將 $vsnames 變量放在引號之間? 我試過使用\\"
但它沒有用,bash 只是添加了一堆不需要的單引號。有什么提示嗎?我實際需要的命令是: create event type=0xfff00033 text="VS1 VS2 " mh=xxx
將變量vsnames
設置為 8 個字符的字符串VS1 VS2
(正如我們從跟蹤中看到的那樣),執行
create event type=0xfff00033 text=\""$vsnames"\" mh=xxx
將create
命令的 argv[2] 設置為
text="VS1 VS2 "
說明:我將$vsnames
括在單引號中,以告訴 bash 我們不想在這里進行分詞。 然后我將其包裹在文字\\"
引號之間,因為您希望create
以查看這些引號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.