数组中可以存放多个值
Shell数组用括号来表示,元素用“空格”符号分割开
语法格式:
Array_name=(value1 value2 …valuen)
定义数组
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2
读取数组
${array_name[index]}
my_array=(A B "C" D)
echo "第一个元素为: ${my_array[0]}"
echo "第二个元素为: ${my_array[1]}"
echo "第三个元素为: ${my_array[2]}"
echo "第四个元素为: ${my_array[3]}"
执行脚本,输出结果如下所示:
第一个元素为: A
第二个元素为: B
第三个元素为: C
第四个元素为: D
获取数组中所有元素
使用@或者*可以获取数组中的所有元素
例如:
my_array=(A B "C" D)
echo "数组的元素为: ${my_array[*]}"
echo "数组的元素为: ${my_array[@]}"
执行结果
数组的元素为: A B C D
数组的元素为: A B C D
获取数组的长度
y_array=(A B "C" D)
echo "数组元素个数为: ${#my_array[*]}"
echo "数组元素个数为: ${#my_array[@]}"
执行结果
数组元素个数为: 4
数组元素个数为: 4
循环数组
for
[[email protected] ~]# array=(a b c 1 2 3 )
[[email protected] ~]# echo ${array[@]}
[[email protected] ~]# a b c d 1 2 3 4
[[email protected] ~]#
for ((i=0;i<${#array[@]};i++))
do
echo ${array[i]}
done
执行结果
a
b
c
1
2
3
也可以写为
[[email protected] ~]# for a in ${array[@]}
> do
> echo $a
> done
[[email protected] ~]# while [ $i -lt ${#array[@]} ]
> do
> echo ${array[$i]}
> let i++
> done