bash的常用變量

一、基礎知識:
1. bash變量的命名規則:以字母或下劃線開頭,中間由數字字母下劃線組成。
2. bash是弱類型語言,變量的默認類型是字符串型。
3. 在bash中,變量可分爲用戶自定義變量、環境變量、位置參數變量、預定義變量
二、用戶自定義變量:
1. 顧名思義,用戶自己定義的變量,因爲bash是弱類型語言,用戶不需要聲明變量的類型,直接輸入[變量名=變量值]即可,系統會自動的將變量默認爲字符串型。這裏需要注意的是”=”(等號)兩邊是不能有空格的,否則系統會將變量名誤認爲命令,而變量名又不是命令,系統進而會報錯。
2. 經常用戶會用到變量的疊加:向變量的尾部添加字符串。比如向字符串變量val尾部添加字符串”123”,總共有兩種辦法:通過命令[val=”$val”123]和[val=${val}123]都能實現,我們一般選擇第一種,即[val=”$val”123]。(因爲編輯器的原因,看上去雙引號和 123之間有空格,其實沒有!)。
3. 對於變量,用戶還有一個經常的操作是對變量的查看。查看變量的命令是[set]命令,用來查看系統中的所有變量。刪除用戶自定義的變量命令是[unset 變量名]。
三、環境變量
1. 環境變量和用戶自定義的區別:環境變量是全局變量,而用戶自定義變量是局部變量,用戶自定義的變量只能在當前的shell空間中有效,而環境變量在所有shell空間中都是有效的,除非關閉shell,否則它將一直有效。用戶可以通過命令[export 變量名]將用戶自定義的變量設置爲環境變量。通過命令[env]可以查看shell中的所有環境變量。
2. 常用的環境變量有:PS1, PATH, LANG, BASH, HOME, SHELL, LC_ALL等。對於PATH變量,用:(冒號)將兩個路徑之間進行分隔。變量LANG定義的是系統主語系的變量,LC_ALL定義的是整體語系的變量。
四、位置參數變量:
1. 作用:向腳本傳遞參數變量。比如,在命令行輸入:腳本名 參數1 參數2 參數3,用戶可以通過位置參數變量將參數1,參數2,參數3送入腳本內部供腳本使用,使用的辦法是用$n代替,其中n表示數字0,1,2,3。$0 表示腳本名,$1表示參數1,$2 表示參數2,$3表示參數3。如果n大於9,我們需要將兩位甚至3位數字用大括號括起來,比如第十個參數的表示方法是${10},第十一個參數表示方法是${11},第一百個參數表示方法是${100}。
2. 除了表示參數位置的變量外,bash還用了三個特殊的字符來命名三個有特殊含義的變量,分別是:#, *, @。$#表示命令後面所跟的參數個數。$*和$@都是輸出所有參數,不同的是$*是一次性將所有參數看作一個完整的字符串輸出,也就是說輸出一個完整的參數字符串”參數1 參數2 參數3”,而$@是將參數一個一個的輸出,先輸出參數1,再輸出參數2,最後輸出參數3。舉例:若循環變量是$*的for循環,循環體將執行一次,若循環變量是$@,循環體將執行三次。
3. 預定義變量:除了變量#, *, @外,bash還提供了三個特殊字符來表示特殊含義的變量,它們分別是:?, $, !(感嘆號),?(問號)變量存儲的是上一個命令的運行狀態,如果值爲0,則表示上一個命令正確執行,若爲非0,則表示上一個命令錯誤執行,我們可以通過$?取出變量?(問號)中的值。變量$存儲的是當前進程的PID號,可通過\$\$取出該進程的PID號。變量!(感嘆號)存儲的是後臺運行的最後一個進程的PID號,可通過\$!取出該變量的值。
若有不對之處,敬請指正。

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