Bash
在 bash 腳本中用雙引號轉義
在閱讀 Advanced Bash Scripting Guide 時,我對這個主題感到困惑。根據書,
Bash 腳本,當我們引用一個字元串時,我們將它分開並保護它的字面意義。
和
轉義是一種引用單個字元的方法。字元前的轉義符 () 告訴 shell 按字面意思解釋該字元。
似乎這
\
是一個“功能”字元,但如果它也放在雙引號中怎麼辦?將\
僅被視為文字還是仍會轉義?例如,echo \z # z echo "\z" # \z seems that the backslash is taken literally echo \\ # \ echo "\\" # \ so why this result is not \\ ?
man bash
:用雙引號括起來的字元會保留引號內所有字元的字面值,除了 $ ,
, \, [...] The backslash retains its special meaning only when followed by one of the following characters: $ 、
、"、\ 或換行符。