Linux
使用 bash 腳本創建 XML 文件
我想使用 bash 腳本(而不是 dom)創建簡單的 xml 文件
但是當我在行中設置值時, 回顯列印 $lorem 單詞而不是 val
歡迎來到
echo '<root><foo a="b">$lorem</foo><bar value="ipsum" /></root>' >> $MY_XML
我也試試這個
echo '<root><foo a="b">\$lorem</foo><bar value="ipsum" /></root>' >> $MY_XML echo '<root><foo a="b">"$lorem"</foo><bar value="ipsum" /></root>' >> $MY_XML echo '<root><foo a="b">\"$lorem\"</foo><bar value="ipsum" /></root>' >> $MY_XML
但所有這些都列印出確切的行而不是 val
請建議如何列印 val $lorem ?如下例
<root><foo a="b">LOL</foo><bar value="ipsum" /></root>
以這種方式列印該行:
echo '<root><foo a="b">'"$lorem"'</foo><bar value="ipsum" /></root>' >> "$MY_XML"
這是必需的,因為單引號拒絕 shell 解釋器替換內部的環境變數
令人沮喪的是,您省略的其中一種組合可能會起作用:
echo "<root><foo a=\"b\">$lorem</foo><bar value=\"ipsum\" /></root>" >> $MY_XML
單引號將所有內容與您鍵入的內容完全相同。逃避是
\
行不通的。雙引號將評估字元串。在雙引號內,您可以使用\
轉義特定字元(包括雙引號字元本身)。您還可以組合以不同方式引用的字元串部分。在這裡,
$lorem
仍然是雙引號,但字元串的其餘部分用單引號括起來:echo '<root><foo a="b">'"$lorem"'</foo><bar value="ipsum" /></root>' >> $MY_XML