Bash

命令行 (bash) 上的 ’ 和 ’ 之間的區別?

  • April 11, 2017

我曾經在命令行上交替使用''and ""(單引號和雙引號),但我最近注意到'$HOME/some/dir'不是擴展,"$HOME/some/dir"而是。我搜尋了一下,發現""允許對特殊字元進行一些''保護,同時允許完全保護。那麼還有哪些其他角色受保護''而不受保護""呢?

編輯:在哪些實際情況下這些差異可能很重要?

查看 bash 手冊頁。有一整節是關於引用的。因為這是根據 GFDL 授權的,與此處使用的 CC-BY-SA 許可證不兼容,所以我不會引用整個內容,但真正閱讀這是最明確的答案

總之,單引號停止所有解釋——字元串按字面呈現。雙引號將$(美元符號)、(反引號)作為特殊字元,而`(反斜杠)在後跟某些其他字元時作為特殊字元。如果!啟用了歷史擴展功能(預設情況下),則將被特殊處理。

在實際使用中,這$很重要,因為人們可能經常需要它啟用的各種擴展(變數等),同時仍然防止 shell 混淆大部分命令行。

引用自:https://unix.stackexchange.com/questions/7574