在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
数组名=(值1 值2 ... 值n)
array_name=(value1 ... valuen)
具体代码如下:
#方式一
array_name=(value0 value1 value2 value3)
#方式二
array_name=(
value0
value1
value2
value3
)
#方式三:单独定义数组的各个分量
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2
注意:
获取数组长度的方法与获取字符串长度的方法相同,例如:
# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}
脚本示例如下:
#!/bin/bash
#定义数组
array_name=("a" "b" "c" "d")
#输出长度
echo ${#array_name[@]} //4 整个数组长度
echo ${#array_name[*]} //4 整个数组长度
echo ${#array_name[2]} //1 下标为2,即第三个元素长度
读取数组元素值的一般格式是:${array_name[index]}
valuen=${array_name[2]}
脚本示例如下:
#!/bin/bash
#定义数组
array_name=("a" "b" "c" "d")
#输出长度
echo ${array_name[@]}
echo ${array_name[*]}
echo ${array_name[0]}
echo ${array_name[1]}
脚本运行结果如下:
a b c d
a b c d
a
b
注意:
unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。
脚本示例如下:
#!/bin/bash
#定义数组
array_name=("a" "b" "c" "d")
#删除数组某一项
unset array_name[1]
echo ${array_name[*]}
#删除整个数组
unset array_name
echo ${array_name[*]}
脚本运行结果如下:
a c d