shell 中的單引號和雙引號

雙引號

[1] 當要引用一個變量的值時,一般推薦使用雙引號。

[2] 使用雙引號除了變量名前綴($)、後引符(`)和轉義符(\)外,會使shell不再解釋引號中其它所有的特殊字符。

[3] 用雙引號時$仍被當成特殊字符,允許引用一個被雙引號引起的變量("$variable"), 那也是說$variable會被它的值所代替。

[4] 用雙引號還能使句子不被分割開.  一個參數用雙引號引起來能使它被看做一個單元,這樣即使參數裏面包含有空白字符也不會被shell分割開了。


在echo語句中,只有句子分割和保存空白符的時候,才需要把參數用雙引號引起來。

echo aaa 與 echo “aaa”是一樣的


單引號

單引號(' ')和雙引號類似,但它不允許解釋變量引用,因此,在單引號內的字符$的特殊意思無效了。在單引號內,除了字符',每個特殊字符都只是字面的意思。單引號(全局引用)比雙引號(部分引用)更嚴格的處理引用部分。


在命令行上,把感嘆號"!"放在雙引號裏執行命令會出錯(譯者注:比如說:echo "hello!"). 因爲感嘆號被解釋成了一個歷史命令. 然而在一個腳本文件裏,這麼寫則是正確的,因爲在腳本文件裏Bash的歷史機制被禁用了。

在雙號號裏在字符"\"也會引起許多不一致的行爲。

bash$ echo hello\!
 hello!
 
 
 bash$ echo "hello\!"
 hello\!
 
 
 
 
 bash$ echo -e x\ty
 xty
 
 
 bash$ echo -e "x\ty"
 x       y


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章