
在 bash 程式設計中,給定一個變量,例如varA
,它儲存包含#
符號的字串。假設varA
包含這個值:ASD# 1
,我需要\
在 的前面附加一個反斜杠#
,所以輸出可能有這個:ASD\# 1
。以下程式碼是為了實現我的目標,只是字串替換似乎不起作用,並且我無法將 sed 命令的輸出分配給另一個變數。有看到這個嗎?
varA="ASD# 1"
echo $(sed s/\#/\\#/g <<< ${varA})
答案1
你的sed
表達中缺少引號。
嘗試:
$ varA="ASD# 1"
$ echo "$(sed 's/#/\\#/g' <<< "${varA}")"
ASD\# 1
答案2
sed
僅使用一個變數會產生開銷。在bash
你可以使用${varA/\#/\\\#}
.