1. 單引號
使用單引號的情況下,不管里面的是否有變量或者其他的表達是都是原樣子輸出
2. 雙引號
如果其定義變量的時候使用雙引號的話,則里面的變量或者函數會通過解析,解析完成后再輸出內容,而不是把雙引號中的變量名以及命令原樣子輸出。
3. 不使用引號
用於一些簡單字符數字的定義與雙引號類似
使用規則 | 解釋 |
---|---|
單引號 | 所見即所得,即輸出時會將單引號內的所有內容都原樣輸出,或者描述為單引號里面看到的是什么就會輸出什么,這稱為強引用 |
雙引號 (默認) | 輸出雙引號內的所有內容;如果內容中有命令(要反引下)、變量、特殊轉義符等,會先把變量、命令、轉義字符解析出結果,然后再輸出最終內容,推薦使用,這稱為弱引用 |
無引號 | 賦值時,如果變量內容中有空格,則會造成賦值不完整。而在輸出內容時,會將含有空格的字符串視為一個整體來輸出;如果內容中有命令(要反引下)、變量等,則會先把變量、命令解析出結果,然后輸出最終內容;如果字符串中帶有空格等特殊字符,則有可能無法完整地輸出,因此需要雙引號替代無引號的情況,特別是對變量賦值時改加雙引號。一般連續的字符串、數字、路徑等可以不加任何引號進行賦值和輸輸出,不過最好是用用 |
反引號 | 一般用於引用命令,執行的時候命令會被執行,相當於S0,賦值和輸出都要用“將命令引起來 |
例如
a= demo b='b- $a' c="b- $a" echo $a echo $b echo $c
結果:
demo b- $a b- demo
建議:
1、簡單變量,簡單賦值可以不用""
2.腳本中聲明變量最好用""
3. 原樣子輸出用''
4.執行命令賦值最好用$()或者``