Shell脚本 ——Array 数组
基本介绍: 在Shell脚本中,数组是存储多个值的有效方式。数组可以通过索引来访问和操作每个元素。
数组定义:
1、使用显式赋值来定义数组
array_name=(value1 value2 value3)
示例:
fruits=("apple" "banana" "cherry")
2、使用 declare 命令定义数组
declare -a array_name
示例:
declare -a fruits
fruits=("apple" "banana" "cherry")
数组元素的访问: fruits=(“apple” “banana” “cherry”)
1、访问单个元素
${array_name[index]}
示例:
echo ${fruits[0]} # 输出:apple
echo ${fruits[1]} # 输出:banana
2、访问整个数组
${array_name[@]}
${array_name[*]}
示例:
echo ${fruits[@]} # 输出:apple banana cherry
echo ${fruits[*]} # 输出:apple banana cherry
数组元素的修改: fruits=(“apple” “banana” “cherry”)
1、修改单个元素
array_name[index]=new_value
示例:
fruits[1]="blueberry"
echo ${fruits[@]} # 输出:apple blueberry cherry
2、添加新元素
array_name[index]=value
示例:
fruits[3]="date"
echo ${fruits[@]} # 输出:apple blueberry cherry date
删除数组元素: fruits=(“apple” “banana” “cherry”)
1、删除单个元素
unset array_name[index]
示例:
unset fruits[1]
echo ${fruits[@]} # 输出:apple cherry date
2、删除整个数组
unset array_name
示例:
unset fruits
获取数组长度:
1、获取数组元素的个数
${#array_name[@]}
示例:
echo ${#fruits[@]} # 输出:3
2、获取单个元素的长度
${#array_name[index]}
示例:
echo ${#fruits[0]} # 输出:5 (apple 的长度)
遍历数组: fruits=(“apple” “blueberry” “banana” “cherry”)
1、使用 for 循环遍历数组
for element in "${array_name[@]}"; do
# 处理每个元素
echo $element
done
示例:
for fruit in "${fruits[@]}"; do
echo $fruit
done
# 输出:
# apple
# blueberry
# cherry
# date
2、使用索引遍历数组
for index in "${!array_name[@]}"; do
# 处理每个元素的索引
echo "${fruits[$index]}"
done
示例:
for index in "${!fruits[@]}"; do
echo "Index: $index, Value: ${fruits[$index]}"
done
# 输出:
# Index: 0, Value: apple
# Index: 1, Value: blueberry
# Index: 2, Value: cherry
# Index: 3, Value: date
多维数组: Shell脚本中不支持真正的多维数组,但可以通过使用关联数组或嵌套数组的方法来模拟多维数组。
模拟多维数组:
matrix=(
[0,0]=1 [0,1]=2 [0,2]=3
[1,0]=4 [1,1]=5 [1,2]=6
[2,0]=7 [2,1]=8 [2,2]=9
)
echo ${matrix[0,0]} # 输出:1
echo ${matrix[1,1]} # 输出:5
echo ${matrix[2,2]} # 输出:9
关联数组: Bash 4及以上版本支持关联数组,可以使用字符串作为数组的键。
1、定义关联数组
declare -A array_name
示例:
declare -A colors
colors=(
["red"]="#FF0000"
["green"]="#00FF00"
["blue"]="#0000FF"
)
2、访问关联数组
${array_name[key]}
示例:
echo ${colors["red"]} # 输出:#FF0000
echo ${colors["green"]} # 输出:#00FF00
更多内容请参考 Shell 脚本专栏。