shell中数组定义:
可以整体定义数组:
1
|
ARRAY_NAME=(value0 value1 value2 value3 ...)
|
或者:
1
2
3
4
5
6
7
|
ARRAY_NAME=(
value0
value1
value2
value3
...
)
|
此时数组的下标默认是从0开始的,还可以单独定义数组的各个分量:
1
2
3
4
|
ARRAY_NAME[0]=value0
ARRAY_NAME[1]=value1
ARRAY_NAME[n]=valuen
...
|
可以不使用连续的下标,而且下标的范围没有限制。
取得数组中的元素:
1
|
valuen=${ARRAY_NAME[n]}
|
一次性将数组中所有元素的值得到:
1
|
echo
${ARRAY_NAME[@]}
|
取得数组元素的个数:
1
|
length=${
#ARRAY_NAME[@]} 或者 length=${#ARRAY_NAME[*]}
|
取得数组单个元素的长度:
1
|
lengthn=${
#ARRAY_NAME[n]}
|
数组遍历:
使用while循环遍历数组:
1
2
3
4
5
6
7
|
i=0
length=${
#ARRAY_NAME[*]}
while
[ $i -lt $length ] ;
do
valuei=${ARRAY_NAME[$i]}
...
let
i++
done
|
使用for循环遍历数组:
1
2
3
4
|
for
value
in
${ARRAY_NAME[*]} ;
do
valuei=value
...
done
|
清空数组:
清空单个元素:
1
|
ARRAY_NAME[n]=
|
将整个数组清空:
1
2
3
|
unset
ARRAY_NAME
或者:
ARRAY_NAME=
|
应该注意unset后的变量不应该加$。加$会清空以ARRAY_NAME的值为名称的变量。
本文转自 SoulMio 51CTO博客,原文链接:http://blog.51cto.com/bovin/1929333,如需转载请自行联系原作者