shell中定義變量用雙引號和單引號以及不用引號的區別


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.執行命令賦值最好用$()或者``


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM