Shell脚本中使用for循环遍历数组的七种方法
在 Shell 脚本中,for 循环可以使用多种方式遍历数组。本文例举一些常见的实现方法:
1. 直接遍历数组元素
for item in "${my_array[@]}"; do
echo "$item"
done
说明:${my_array[@]} 展开数组的所有元素,一个个传给 for 循环。
2. 通过数组索引遍历
for i in "${!my_array[@]}"; do
echo "Index $i: ${my_array[i]}"
done
说明:${!my_array[@]} 获取数组的所有索引,用于按位置访问元素。
3. 使用传统 C 风格的 for 循环
for ((i = 0; i < ${#my_array[@]}; i++)); do
echo "Index $i: ${my_array[i]}"
done
说明:
${#my_array[@]} 获取数组的长度。
((...)) 进行 C 风格的循环迭代。
4. 逆序遍历数组
for ((i = ${#my_array[@]} - 1; i >= 0; i--)); do
echo "Index $i: ${my_array[i]}"
done
说明:通过索引从数组尾部向前遍历。
5. 遍历带条件检查
my_array=(a b c di Bi ei Bc)
for item in "${my_array[@]}"; do
if [[ $item == B* ]]; then
echo "匹配的元素: $item"
fi
done
说明:结合 if 条件语句,筛选符合特定条件的元素。
6. 遍历多维数组(嵌套循环)
multi_array=(
"Row1: Apple Banana"
"Row2: Cherry Date"
)
for row in "${multi_array[@]}"; do
for element in $row; do
echo "$element"
done
done
说明:用于多维数组或需要逐层处理的数据。
7. 以指定步长遍历数组
step=2
for ((i = 0; i < ${#my_array[@]}; i+=step)); do
echo "Index $i: ${my_array[i]}"
done
说明:可以通过控制索引增量(如步长为 2)跳跃式遍历数组。
一键三连支持!