簡體   English   中英

Bash腳本雙引號轉義

[英]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.

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