bash脚本之数组学习

时间:2024-11-26 14:35:38

在bash中可使用索引数组和关联数组,bash在4.0版本之后才添加了对关联数组的支持

一、索引数组

1、定义索引数组

# 方式1
array_value=(1 2 3 4 5 6)或者array_value=(1, 2, 3, 4, 5, 6)

# 方式2
array_value[0]='test1'
array_value[2]='test2'
......
array_value[5]='test6'

如同其他脚本语言一样,bash中的索引数组起始位置从0开始

2、打印数组某一项

echo ${array_value[0]}
或者
index=5
echo ${array_value[$index]}

打印结果如下:

bash脚本之数组学习

3、打印数组的所有值

echo ${array_value[*]}
或者
echo ${array_value[@]}

打印结果如下:

bash脚本之数组学习

4、打印数组长度

echo ${#array_value[*]}
或者
echo ${#array_value[@]}

注意区别打印数组长度与字符串长度的方式
如果使用 echo ${#array_value}得到的结果为1,则不是正确结果

打印结果如下:

bash脚本之数组学习

错误方式:

bash脚本之数组学习

二、关联数组

1、定义关联数组

# 定义关联数组 assoc_array
declare -A assoc_array

2、插入元素

assoc_array=([index1]=val1 [index2]=val2)
或者
assoc_array[index1]=val1
assoc_array[index2]=val2

例如:

bash脚本之数组学习

3、列出数组索引

echo ${!assoc_array[*]}
或者
echo ${!assoc_array[@]}

此方式同样适用于索引数组

结果如下:

bash脚本之数组学习