数组遍历 #

一、for循环遍历 #

1.1 遍历元素 #

bash
#!/bin/bash

arr=(apple banana cherry date)

# 直接遍历
for item in "${arr[@]}"; do
    echo "水果: $item"
done

# 使用索引
for (( i=0; i<${#arr[@]}; i++ )); do
    echo "arr[$i] = ${arr[$i]}"
done

1.2 获取索引 #

bash
#!/bin/bash

arr=(a b c)
arr[5]=f
arr[10]=k

# 获取所有索引
for index in "${!arr[@]}"; do
    echo "索引 $index: ${arr[$index]}"
done

二、while循环遍历 #

bash
#!/bin/bash

arr=(a b c d e)
i=0

while (( i < ${#arr[@]} )); do
    echo "元素 $i: ${arr[$i]}"
    ((i++))
done

三、关联数组遍历 #

bash
#!/bin/bash

declare -A user=(
    [name]="张三"
    [age]=25
    [city]="北京"
)

# 遍历键值对
for key in "${!user[@]}"; do
    echo "$key = ${user[$key]}"
done

# 只遍历值
for value in "${user[@]}"; do
    echo "值: $value"
done

四、多维数组模拟 #

bash
#!/bin/bash

# 使用关联数组模拟二维数组
declare -A matrix

# 赋值
matrix[0,0]=1
matrix[0,1]=2
matrix[1,0]=3
matrix[1,1]=4

# 遍历
for i in 0 1; do
    for j in 0 1; do
        echo "matrix[$i,$j] = ${matrix[$i,$j]}"
    done
done

五、总结 #

5.1 遍历方法对比 #

方法 适用场景
for item in “${arr[@]}” 遍历所有元素
for i in “${!arr[@]}” 获取索引
for ((i=0; i<n; i++)) 需要索引控制
while 复杂条件遍历

5.2 下一步 #

你已经掌握了数组遍历,接下来让我们学习 echo命令

最后更新:2026-03-27