1.數組定義,shell使用一對括弧表示數組,數組元素間用”空格”分隔
# 空數組arr1arr1=()# 數組arr2,成員分別是1, 2, 3, 4, 5, 6arr2=(1 2 3 4 5 6)
2.數組元素讀取,格式:${數組名[下標]},下標從0開始,下標為*或@代表整個數組內容
[root@10 ~]# echo ${arr2[0]}1[root@10 ~]# echo ${arr2[*]}1 2 3 4 5 6
3.遍曆數組, foreach
for num in ${arr2[*]}; do echo $num;done;
4.數組長度,格式:${#數組名[*或@]}
[root@10 ~]# echo ${#arr2[*]}6
5.賦值,格式:數組名[下標]=值,如果下標不存在,則新增數組元素; 下標已有,則覆蓋值
[root@10 ~]# arr2[6]=7[root@10 ~]# echo ${arr2[*]} 1 2 3 4 5 6 7[root@10 ~]# arr2[0]=-1[root@10 ~]# echo ${arr2[*]}-1 2 3 4 5 6 7
6.分區,格式:${數組名[*或@]:起始位:長度},截取部分數組,返回字串,中間用空格分隔;將結果使用“()”,則得到新的切片數組
[root@10 ~]# echo ${arr2[*]:0:3}-1 2 3[root@10 ~]# arr3=(${arr2[*]:0:3})[root@10 ~]# echo ${arr3[*]}-1 2 3
7.替換元素,格式:${數組名[*或@]/尋找字元/替換字元}, 不會修改原數組;如需修改的數組,將結果使用“()”賦給新數組
[root@10 ~]# echo ${arr2[*]} -1 2 3 4 5 6 7[root@10 ~]# echo ${arr2[*]/7/10}-1 2 3 4 5 6 10[root@10 ~]# arr4=(${arr2[*]/7/10})[root@10 ~]# echo ${arr4[*]}-1 2 3 4 5 6 10
8.刪除數組,格式:unset 數組,清除整個數組; unset 數組[下標],清除單個元素
[root@10 ~]# echo ${arr2[*]}-1 2 3 4 5 6 7[root@10 ~]# unset arr2[0][root@10 ~]# echo ${arr2[*]}2 3 4 5 6 7[root@10 ~]# unset arr2[root@10 ~]# echo ${arr2[*]}[root@10 ~]#