Shell 数组用括号()来表示,元素用空格分隔,元素的下标元素的下标从0开始。
数组常用定义方法包括以下几种。
- 数组名=(value0 value1 value2 …)
- 数组名=([0]=value [1]=value [2]=value …)
- 列表名=”value0 value1 value2 …” 数组名=($列表名)
- 数组名[0]=”value” 数组名[1]=”value” 数组名[2]=”value”
获取数组长度
[root@promote ~]# aaa=(1 2 3 4 5)[root@promote ~]# aaa=${#aaa[*]}[root@promote ~]# echo $aaa5
读取某下标赋值
[root@promote ~]# aaa=${aaa[1]}[root@promote ~]# echo $aaa2
数组遍历
#!/bin/bashnum=(11 22 33 44)for n in ${num}doecho ${num[*]}done
数组切片
[root@promote ~]# aaa=(1 2 3 4 5)[root@promote ~]# echo ${aaa[*]} #输出整个数组1 2 3 4 5[root@promote ~]# echo ${aaa[*]:0:2} #${数组名[@或*]:起始位置:长度}1 2[root@promote ~]# echo ${aaa[*]:2:3}3 4 5
将数组切片之后,返回的是字符串,以空格作为分隔符。
数组替换
[root@promote ~]# echo ${aaa[*]}1 2 3 4 5[root@promote ~]# aaa=(${aaa[*]/1/22})[root@promote ~]# echo ${aaa[*]}22 2 3 4 5
删除数组
#删除指定元素[root@promote ~]# aaa=(1 2 3 4 5)[root@promote ~]# unset aaa[1] #下标[root@promote ~]# echo ${aaa[*]}1 3 4 5[root@promote ~]# unset aaa[*][root@promote ~]# echo ${aaa[*]}