Linux下Shell中数组的使用
定义
可以整体定义数组:
ARRAY_NAME=(value0 value1 value2 value3 ...)
或者:
ARRAY_NAME=(
value0
value1
value2
value3
...
)
此时数组的下标默认是从0开始的
还可以单独定义数组的各个分量:
ARRAY_NAME[0]=value0
ARRAY_NAME[1]=value1
ARRAY_NAME[n]=valuen
...
可以不使用连续的下标,而且下标的范围没有限制。
使用
取得数组中的元素:
valuen=${ARRAY_NAME[n]}
取得数组的全部元素:
一次性将数组中所有元素的值得到:
echo ${ARRAY_NAME[@]}
取得数组元素的个数:
length=${#ARRAY_NAME[@]}
或者
length=${#ARRAY_NAME[*]}
取得数组单个元素的长度:
lengthn=${#ARRAY_NAME[n]}
遍历
使用while循环遍历数组:
i=0
length=${#ARRAY_NAME[*]}
while [ $i -lt $length ] ; do
valuei=${ARRAY_NAME[$i]}
...
let i++
done
使用for循环遍历数组:
for value in ${ARRAY_NAME[*]} ; do
valuei=value
...
done
清空
清空单个元素:
ARRAY_NAME[n]=
将整个数组清空:
unset ARRAY_NAME
或者:
ARRAY_NAME=
应该注意unset后的变量不应该加$。
加$会清空以ARRAY_NAME的值为名称的变量。