Bash
命令行 (bash) 上的 ’ 和 ’ 之間的區別?
我曾經在命令行上交替使用
''
and""
(單引號和雙引號),但我最近注意到'$HOME/some/dir'
不是擴展,"$HOME/some/dir"
而是。我搜尋了一下,發現""
允許對特殊字元進行一些''
保護,同時允許完全保護。那麼還有哪些其他角色受保護''
而不受保護""
呢?編輯:在哪些實際情況下這些差異可能很重要?
查看 bash 手冊頁。有一整節是關於引用的。因為這是根據 GFDL 授權的,與此處使用的 CC-BY-SA 許可證不兼容,所以我不會引用整個內容,但真正閱讀這是最明確的答案。
總之,單引號停止所有解釋——字元串按字面呈現。雙引號將
$
(美元符號)、(反引號)作為特殊字元,而
`(反斜杠)在後跟某些其他字元時作為特殊字元。如果!
啟用了歷史擴展功能(預設情況下),則將被特殊處理。在實際使用中,這
$
很重要,因為人們可能經常需要它啟用的各種擴展(變數等),同時仍然防止 shell 混淆大部分命令行。