1. 程式人生 > >全文剖析Shell本地變量的知識點

全文剖析Shell本地變量的知識點

反引號 所見 def 用法 腳本 字符串 下劃線 連接 其他

一、本地變量
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
各位朋友有什麽不懂以及認為有什麽錯誤之處,請在下方留言,謝謝!

全文剖析Shell本地變量的知識點