在shell中,在使用数组前不需要明确地进行定义,当第一次赋值给数组变量时数组即被创建。数组的第一个元素的索引是0,然后依次往后加1。shell中的数组是一维数组。
引用数组中的每个元素的格式是 ${arr[index]},使用 ${arr[@]} 或 ${arr[*]} 显示数组包含的所有元素,${#arr[@]} 或 ${#arr[*]}则显示数组中包含的元素数量。
将字符串转化为数组:
disks='sdb sdc sde sdf sdg sdi sdj sdk sdl sdm sdn sdo sdp sdq sdr sds sdt sdu'
IFS=" "
arr=($disks)
for i in "${!arr[@]}" #for i in ${!arr[*]}
do
echo ${arr[i]}
done
sdb
sdc
sde
sdf
...
sds
sdt
sdu
除了使用上面的方法遍历数组外,还可以使用以下方法遍历数组:
for ((i=0;i<${#arr[*]};i++))
do
echo "$i: ${arr[i]}"
done
0: sdb
1: sdc
2: sde
3: sdf
...
15: sds
16: sdt
17: sdu
i=0
while [ $i -lt ${#arr[@]} ]
do
echo "${i}: ${arr[$i]}"
i=`expr $i + 1`
done