標量
定義變量
name=value
name是變量名,value是變量的值,比如name=zdd,注意,Shell定義變量的時候不需要加$,而使用變量的時候則需要加$,這點和perl是有區別的,perl定義變量的時候也需要$符號。定義變量的時候要注意以下幾點。
- Shell中的變量只能由字母,數字和下划線組成,且不能以數字開頭。
- 如果變量值中含有空格,應該用引號(單引號雙引號均可)括起,比如 "Hello world"或'Hello world'。
- 等號左右都沒有空格。
使用變量
訪問一個變量的時候只要在其前面加一個$即可,比如echo $name,如果不加$,則顯示變量的名字,也就是echo name將顯示name。
數組變量
Bourne Shell(sh)只支持標量,Korn Shell(ksh)和第二版及更高版本的Bourne Again Shell(bash)都支持數組變量。
定義數組
為單個元素賦值
name[index]=value
為整個數組賦值
bash
name=(value1 value2... valuen) 各個元素以空格分離。
也可以只為某些元素賦值
name=([0]=value0 [3]=value3 [5]=value5)
ksh
set -A name value1 value2 ... valuen, name是數組名。
使用數組
訪問單個值
${name[index]}
訪問整個數組
${name[*]}
${name[@]} 可以處理包含空格的數組元素,推薦使用。
只讀變量
定義方法
name=value
readonly name
只讀變量一旦定義就不可更改其值,也不能用unset刪除。
變量類型
局部變量
在Shell腳本中由用戶自定義的變量。
環境變量
使用export命令可以查看當前系統的環境變量。
Shell變量
常用的Shell變量有如下這些。
PWD
UID
SHLVL
REPLY
RANDOM
SECONDS
IFS
PATH
HOME
刪除變量
unset name
如何刪除數組變量?