全文剖析Shell本地變數的知識點
一、本地變數
1、使用場景:本地變數在使用者當前shell生存期的指令碼中使用
2、定義賦值的幾種方式:
變數名=值 #賦值時不加引號 變數名=‘值’ #賦值時加單引號 變數名=“值” #賦值時加雙引號
3、定義變數名以及賦值時的要求
變數名:一般是字母、數字、下劃線組成,可以以字母或者下劃線開頭,不能以數字開頭,建議採用駝峰語法來編輯變數名(即當變數名是多個單詞時,除了第一個單詞首字母是小寫,其他單詞的首字母都是大寫)
賦值:可以用單引號、雙引號以及不加任何引號,但是三者的含義是不同的
4、三種賦值方式的不同之處
無引號 :賦值時,
如果值中有空格,則會造成賦值失敗 如果值中有命令、其他變數,則會先把命令和變數解析後再輸出 如果字串中帶有空格等特殊字元,則會賦值失敗
單引號:賦值時,
所見即所得,即輸出時會將單引號內的所有內容按原樣輸出,就是你看到什麼就輸出什麼,被稱為“強引用”
雙引號:賦值時,
輸出雙引號內的室友內容 如果值中有命令、其他變數、特殊轉移符等,會先把前三者解析出來再輸出,是⭐️推薦的用法⭐️,被稱為“弱引用”
反引號:順帶說一下,反引號用法。一般用於引用命令,執行的時候命令會被執行,但是一般不推薦用反引號引用命令的方式,而是推薦用 $() 這樣的方式來引用命令。
5、變數定義以及賦值經驗小結
1)若變數內容為連續的數字或者字串,賦值時,可不加任何引號,例如:abc=123
2)若變數的內容很多時,且有空格和希望被解析的變數,就必須使用雙引號,例如:abc="/etc/rc.local $USER"
3)若希望原樣輸出變數中的內容時必須採用單引號進行復制,例如:abc='$USER'
4)若要引用命令,則用反引號把賦值的命令反引起來,但是建議用$()的方式,而不是反引號,例如:abc=ls
abc=$(ls)
5)使用“echo $變數名”即可以輸出變數的內容,也可以用printf代替echo輸出更復雜的格式內容
6)當變數後面連線有其他字元的時候,必須給變數加上大括號{},例如:${abc}_def
7)沒有特殊要求時,一律使用雙引號
6、三劍客(grep/awk/sed)取用Shell變數時的特殊用法
grep:按前面的正常用法
sed:按前面的正常用法
awk:⭐️不能按前面的正常用法⭐️,awk取用shell變數時的格式例子:NB="dabiaoge" echo "$NB" | awk '{print $0}' echo '$NB' | awk '{print $0}' echo $NB | awk '{print $0}' NB=`pwd` 或者 NB=$(pwd) echo "$NB" | awk '{print $0}' echo '$NB' | awk '{print $0}' echo $NB | awk '{print $0}'
二、我是大表哥,我為自己帶鹽,以後會不定時更新,請支援正版,盜鏈可恥
我的部落格是:http://blog.51cto.com
各位朋友有什麼不懂以及認為有什麼錯誤之處,請在下方留言,謝謝!