Bash支持普通数组和关联数组,前者使用整数作为数组索引,后者使用字符串作为数组索引。当数据以数字顺序组织的时候,应该使用普通数组;当数据以字符串组织的时候,就应该使用关联数组。
Bash从4.0版本才开始支持关联数组。
1. 定义数组
1.1 单行定义
array_var=(test1 test2 test3 test4)
这些值将会存储在以0为起始索引的连续位置上。
1.2 索引定义
array_var[0]="test1"
array_var[1]="test2"
array_var[2]="test3"
array_var[3]="test4"
array_var[4]="test5"
array_var[5]="test6"
2. 引用特定数组元素
echo ${array_var[0]}
index=5
echo ${array_var[$index]}
3. 打印出数组中的所有值
echo ${array_var[*]}
echo ${array_var[@]}
4. 数组长度
echo ${#array_var[*]}
5. 定义关联数组
在关联数组中,可以用任意的文本作为数组索引。首先,需要使用声明语句将一个变量
定义为关联数组:
declare -A ass_array
5.1 添加元素
ass_array=([index1]=val1 [index2]=val2)
# or
ass_array[index1]=val1
ass_array[index2]=val2
5.2 列出数组索引
echo ${!array_var[*]}
# or
echo ${!array_var[@]}