定义
shell支持一维数组, 不限定数组的大小, 数组下标由0开始编号.
在shell中用括号来表示数组, 数组元素用空格符号分开, 定义的一般形式为arr=(value1 value2 ... valueN)
:
arr1=() # 空数组
arr2=(1 2 3 4 5 6)
或者
arr3=(
1
2
3
)
还可以单独定义数组的各个分量:
num[0]=1
num[1]=2
num[2]=3
注意:数组可以不使用连续的下标, 而且下标的范围没有限制.
引用数组
一般的形式为 value=${arr[N]}
:
echo ${num[0]}
使用@或*可以获取数组中的所有元素
echo ${arr[*]}
echo ${arr[@]}
这两个是等价的.
获取数组长度
len=${#arr[@]}
或 len=${#arr[*]}
取得数组单个元素的长度
len=${#arr[n]}
获取数组索引的值
${!name[@]}
${!name[*]}
name[1]=20
name[19]=30
echo ${!name[*]}
遍历数组
通过数组的值遍历:
for i in ${array[*]};do
echo ${i}
done
也可以通过索引遍历:
for i in ${!name[*]};do
echo ${name[$i]}
done