Shell數組的介紹
數組算是一種特殊的數據結構,數據項可以成為數組的元素,可以通過數組的索引獲取每一個數組的元素值。
數組的典型的使用場景是把相同類型的元素匯總在一起。由于Shell變量屬于弱類型,所以數組里面的元素并不一定是相同類型。
注意:Shell中的數組只支持一維數組,但對元素的個數沒有限制,數組元素的索引也是從0開始。
數組的定義
數組的定義格式:declare -a 數組名稱
比如:declare -a testarr #定義一個testarr數組
testarr[0]=10 #第一個元素賦值
testarr[1]="hello" #第二個元素賦值
#數組定義的時候同時賦值
declare -a testarr=(10,'hello') 等價于 testarr=(10,'hello')
testarr[2]=20 #增加元素
#不連續賦值
testarr1=([1]=10 [3]=30 [5]=50)
數組的操作
1、數組的取值
格式如下:${數組名[索引]}
比如:echo ${testarr[0]}
echo ${testarr[@]} #獲取元素的所有值? 輸出以空格隔開的元素值
echo ${testarr[*]} #獲取元素的所有值,輸出的是一整個字符串
2、數組長度
方法如下:
echo ${#testarr[@]} #獲取數組元素的個數
echo ${#testarr[*]} #獲取數組元素的個數
echo ${#testarr[0]} #獲取數組某一個元素的長度
3、數組截取
echo ${testarr[@]:1:2}?
#獲取數組的索引值是1、2的元素
echo ${testarr[2]:0:2}?
#獲取數組索引值是2元素值截取從第0個字符開始連續2個字符
4、連接數組
testarr2={${testarr[@]} ${testarr1[@]}} #合并數組
5、替換元素:將數組內某個元素值替換成其他值
testarr=($testarr[@]/hello/helloworld)
6、取消數組或元素
unset $testarr #取消數組
unset $testarr[0] #取消數組的一個元素