在撰寫 bash 腳本時,雙引號是否有第三級遞回?我需要使用雙引號,因為單引號會從字面上讀取變數。
我可以
"first level \"second level\""
但想做類似的事情
"first level \"second level \\" third level \\"\""
我明白為什么這不起作用,但我需要語法方面的幫助
uj5u.com熱心網友回復:
你也必須逃避反斜杠。
"first level \"second level \\\" third level \\\"\""
第一個\\產生文字反斜杠,然后\"轉義雙引號。
uj5u.com熱心網友回復:
使用 Here-Documents 降低復雜性
請不要這樣做。相反,如果您需要額外的參考級別,請考慮:
- 以最小化您需要執行的轉義量的方式正確混合單引號和雙引號。
- 使用此處的檔案并避免整個混亂。
我將涵蓋這兩點,但更多地關注第二點,因為它更容易且不易出錯。例如:
cat <<-'EOF'
first level "second level 'third level'"
EOF
將完全避免插值,并正確列印:
first level "second level 'third level'"
如果您正在做比這更復雜的事情,您可能需要考慮重構代碼中的其他地方以簡化事情。有時復雜性是不可避免的,但如果您對問題采取不同的方法,幾乎??總是有一個更簡單的解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/348056.html
