bash支持一维数组(不支持多维数组),并且没有限定数组的大小。和C语言类似,数组元素的下标从0开始。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。
(1)数组的定义
数组的定义有两种方法:
(方法一)
在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
array_name=(value1 value2 ... valuen)
举例来说,定义一个数据,包含几个字符串:
array_name=(str_1 str_2 str_3 str_4)
或
array_name=(
str_1
str_2
str_3
str_4
)
(方法二)
也可以采用单独定义数组的各个分量的形式来定义数组,举例来说:
array_name[0]=str_1
array_name[1]=str_2
array_name[2]=str_3
array_name[3]=str_4
(方法三)
可以为数组中的元素指定下标,举例来说:
LOG_LEVEL_TEXT=(
[1]="FATAL"
[2]="WARNING"
[4]="NOTICE"
[8]="TRACE"
[16]="DEBUG"
)
(2)数组元素的使用
读取数组元素值的一般格式是:
${array_name[index]}
举例来说,
value=${array_name[2]}
使用@ 或 * 可以获取数组中的所有元素,形如:
${array_name[*]}
${array_name[@]}
遍历数组的方法:
#!/bin/bash
serve_name=(beijing shanghai tianjin chongqing)
for elem in ${serve_name[@]}
do
echo $elem
done
获取数组长度的方法与获取字符串长度的方法相同,例如:
# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}
学习资料来源于:
http://c.biancheng.net/cpp/view/7002.html