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