一、单纯数组
#!/usr/bin/env bash
#1、定义一个空数组
my_array=()
#2、增。使用 `+=` 运算符将元素添加到数组的末尾
my_array+=("value1")
my_array+=("value2")
my_array+=("value3")
#3、增。还可以使用一行的方式一次性添加多个元素到数组
my_array+=("value4" "value5" "value6")
#4、读。读取数组
echo ${my_array[1]} # 输出:value2
echo ${my_array[*]} # 输出:value1 value2 value3 value4 value5 value6
echo ${my_array[5]} # 输出:value6
#5、读。使用 '#' 可以获取数组的长度
length=${#my_array[@]}
echo $length # 输出:6
#6、读。使用 for 循环遍历数组元素并输出
for i in ${my_array[@]}; do
echo $i
done
echo '-----------分割线1--------------'
#7、 读。可以使用 ':' 来定义数组的切片范围
slice=("${my_array[@]:2:4}") # 获取从第3个开始切,切出来4个
echo "${slice[@]}" # 输出:value3 value4 value5 value6
echo '-----------分割线2--------------'
#8、 删。使用 unset 命令删除指定索引上的元素
unset my_array[1]
echo ${my_array[*]} # 输出:value1 value3 value4 value5 value6
echo '-----------分割线3--------------'
#9、改。将数组的第一个元素值改成hello world
my_array[0]="hello world"
echo "${my_array[*]} 长度:${#my_array[@]}" # 输出:hello world value3 value4 value5 value6 长度:5
echo ${my_array[0]} # 输出:hello world。 注意bash不会用空格来区分每个元素,只是显示的时候看起来好像是用空格区分每个元素
二、key & value 型数组
#!/usr/bin/env bash
# 定义一个关联数组
declare -A my_assoc_array
my_assoc_array["mykey1"]="value1"
my_assoc_array["key2"]="value2"
my_assoc_array["key3"]="value3"
echo ${my_assoc_array[@]} #输出:value1 value3 value2
echo '--------'
# 修改关联数组中的元素
my_assoc_array["key2"]="new_value"
# 遍历关联数组,检查元素是否修改
for key in "${!my_assoc_array[@]}"; do
echo "$key: ${my_assoc_array[$key]}"
done
#输出:
# mykey1: value1
# key3: value3
# key2: new_value
echo '--------'
echo ${my_assoc_array['key3']} #输出:value3
# 注意不能使用索引来读取数据
echo '--------'
unset my_assoc_array["mykey1"]
echo ${my_assoc_array[@]} #输出:value3 new_value