在Linux系統(tǒng)中進行日常運維或者是編寫腳本時,變量是再熟悉不過的了,但這些變量都有哪些類型,具體的用法又有哪些差異呢?本文整理分享給大家:
一、bash變量類型:
本地變量
局部變量
環(huán)境變量
位置變量
特殊變量(內(nèi)置)
二、本地變量:
varname=value:作用域為整個bash進程可以使用;
變量命名規(guī)范:
1. 只能含字母、數(shù)字和下劃線,并且以字母和下劃線開頭
2. 最好不要跟系統(tǒng)已有的環(huán)境變量重名
3. 見名知意
三、局部變量:
local varname=value:作用域為當(dāng)前代碼段;
四、環(huán)境變量:
作用域為當(dāng)前shell進程及其子進程,不能影響到其父進程;
export varname=value “導(dǎo)出”,如果變量已經(jīng)定義可以只是用變量名 export varname,即
1. export varname=value
2. varname=value
export varname
腳本在執(zhí)行命令時會啟動一個子shell環(huán)境變量:
系統(tǒng)自動執(zhí)行的腳本(非命令行啟動)就需要自我定義需要的個環(huán)境變量;
五、位置變量:
$1,$2,$3,……
cat first.sh test.txt hello
$1: first.sh
$2: test.txt
$3: hello
shift:踢掉參數(shù)
shift n:踢掉n個參數(shù),默認(rèn)踢掉一個參數(shù)
六、特殊變量:
$?:上一個命令執(zhí)行狀態(tài)的返回值:
程序執(zhí)行可能有兩種返回值:
1. 程序執(zhí)行結(jié)果
2. 程序狀態(tài)返回嗎(0-255)
0 則為執(zhí)行正確
1-255 則執(zhí)行出錯(1,2,127系統(tǒng)預(yù)留);
$#:獲取當(dāng)前shell命令行中參數(shù)的總個數(shù)
$*:獲取當(dāng)前shell的所有參數(shù) “$1 $2 $3 …,受IFS控制
$@:這個程序的所有參數(shù) “$1″ “$2″ “$3″ “…”,不受IFS控制
$0 獲取當(dāng)前執(zhí)行的shell腳本的文件名
$n 獲取當(dāng)前執(zhí)行的shell腳本的第n個參數(shù)值,n=1..9
$$ 獲取當(dāng)前shell的進程號(PID)
$! 執(zhí)行上一個指令的PID
您可能感興趣的文章:- 詳解shell 變量的高級用法示例
- 處理Shell腳本中帶有空格的變量(bash腳本)
- shell判斷一個變量是否為空方法總結(jié)
- linux中shell的變量的數(shù)值計算
- Shell編程之特殊變量和擴展變量詳解
- Shell編程之變量數(shù)值計算方法示例
- shell for循環(huán)、循環(huán)變量值付給其他shell腳本的方法
- 詳解Shell編程之變量數(shù)值計算(二)
- 詳解Shell編程之變量數(shù)值計算(一)
- 淺談linux中shell變量$#,$@,$0,$1,$2的含義解釋
- 判斷Linux Shell環(huán)境變量是否存在
- Linux Shell腳本系列教程(四):使用函數(shù)添加環(huán)境變量
- Linux Shell腳本系列教程(三):變量和環(huán)境變量
- 詳解shell 變量