数组是shell脚本中非常重要的组成部分,可以将多个独立的数据存储为一个结合
Bash支持的数组有普通数组和关联数组,可以使用整数作为数组索引,在关联数组中可以使用字符串作为数组索引
对于定义一个数组,使用的方式可以如下
array_var=(1 2 3 4 5 6)
然后,还可以将数组定义为一组索引-值
array_var[0]=”test1″
array_var[1]=”test2″
array_var[2]=”test3″
array_var[3]=”test4″
array_var[4]=”test5″
获得索引数组中的数据方式如下
echo ${array_var[0]}
index=4
echo ${array_var[$index]}
获取到数组中所有的值
echo ${array_var[*]}
同理的
echo ${array_var[@]}
获取数组的长度
$ echo ${#array_var[*]}
关联数组
关联数组是很多问题的强有力解决工具
定义关联数组在关联数组中,我们可以使用任意的文本作为数组索引,在普通数组中,只能用整数来作为索引,首先使用单独的声明语句声明一个变量名作为关联数组的数组名
$declare -A ass_array
然后有两种添加的方式
1.内嵌索引-值列表
2.单独的索引-值的方式来进行赋值
ass_array=([index1]=var1 [index2]=var2)
使用单独的索引-值进行赋值
ass_array[index1]=val1
ass_array[index2]=val2
通过上面的例子,我们来用关联数组来为水果制订价格
declare -A fruilts_value
fruit_vlaue=([apple]=’100dollars’ [oragnge]=’150dollars’)
然后获取数组的信息
echo “Apple costs
{fruits_value[apple]}”
获得关联数组的索引
每一个数组的元素都有一个索引用于查找,获取所有的索引的方式如下
echo ${!array_var[*]}
获取length和value的方式如同普通数组