新聞中心
變量是計算內存的單元,其中存放的值可以改變,當Shell腳本需要保存一些信息時,如一個文件名或是一個數(shù)字,就把它存放在一個變量中。每個變量有一個名字,所以很容易引用它,下面為大家詳細講解一下shell中的變量。

Bash變量類型
-
本地變量
-
局部變量
-
環(huán)境變量
-
位置變量
-
特殊變量(內置)
這里需要注意的是對變量進行賦值時,”=”兩邊是不能有空白的,否則就會報錯。
root@ubuntu:~# LIST='/etc'
root@ubuntu:~# echo $LIST
/etc
root@ubuntu:~# LIST = '/etc'
LIST: command not found
本地變量
var_name=value:作用域為整個bash進程可以使用; 變量命名規(guī)范:
-
只能含字母、數(shù)字和下劃線,并且以字母和下劃線開頭。
-
最好不要跟系統(tǒng)已有的環(huán)境變量重名。
-
變量名可充分體現(xiàn)這個變量的作用。
局部變量
聲明局部變量使用“l(fā)ocal”命令,局部變量作用域只在作用范圍內有效。 local var_name=value:作用域為當前代碼段
環(huán)境變量
作用域為當前shell進程及其子進程,不能影響到其父進程,聲明環(huán)境變量使用“export”命令。
export var_name=value
,如果變量已經定義可以只是用變量名 export var_name,即可用下面兩種方式聲明環(huán)境變量: \1. export var_name=value \2. var_name=value export var_name 腳本在執(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ù),默認踢掉一個參數(shù) 這里需要注意的是為調用該腳本的名字,而參數(shù)作為變量的話第個變量不能直接寫10,而需要寫成${10}。
特殊變量
$?:上一個命令執(zhí)行狀態(tài)的返回值: 程序執(zhí)行可能有兩種返回值: \1. 程序執(zhí)行結果 \2. 程序狀態(tài)返回嗎(0-255) 0 則為執(zhí)行正確 1-255 則執(zhí)行出錯(1,2,127系統(tǒng)預留); 可以自定義返回值來獲取不同的錯誤狀態(tài)。
#:獲取當前shell命令行中參數(shù)的總個數(shù) *:獲取當前shell的所有參數(shù) “2 ,受控制@:這個程序的所有參數(shù) “2″ “,不受控制0 獲取當前執(zhí)行的shell腳本的文件名 獲取當前執(zhí)行的腳本的第個參數(shù)值,獲取當前的進程號()! 執(zhí)行上一個指令的PID
網(wǎng)頁題目:詳解shell變量
當前URL:http://m.fisionsoft.com.cn/article/cdejgpo.html


咨詢
建站咨詢
