shell数组变量

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,如需转载请自行联系原作者
上一篇:ansible自动化运维工具


下一篇:R1-006 Shell变量简介1