You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash中如何在for循环内按相同索引同时遍历多个不同数组

Bash 多数组同下标遍历实现方案

你可以直接通过下标遍历的方式实现需求,以下是两种常用的可行写法:

写法1:下标列表遍历(兼容性最好)

该写法支持非连续索引的数组,不需要提前计算数组长度,逻辑更简洁:

# 定义三个数组
a=(banana apple grape)
b=(1 2 3)
c=(yellow red purple)

# 遍历数组a的所有下标
for i in "${!a[@]}"; do
    echo "${a[$i]} ${b[$i]} ${c[$i]}"
done

写法2:算术循环(和你给出的伪代码逻辑完全一致)

如果你习惯类C的循环写法,可以用该实现:

a=(banana apple grape)
b=(1 2 3)
c=(yellow red purple)

# 取数组长度做循环边界
arr_len=${#a[@]}
for ((i=0; i<arr_len; i++)); do
    echo "${a[$i]} ${b[$i]} ${c[$i]}"
done

注意事项

  • 所有变量引用建议包裹双引号,避免数组元素存在空格时输出异常
  • 如果三个数组长度不一致,超出短数组长度的下标位置会输出空值,你可以提前加入长度校验逻辑避免异常:
if [[ ${#a[@]} -ne ${#b[@]} || ${#a[@]} -ne ${#c[@]} ]]; then
    echo "错误:三个数组长度不匹配"
    exit 1
fi

两种写法运行后都会输出你预期的结果:

banana 1 yellow
apple 2 red
grape 3 purple

内容的提问来源于stack exchange,提问作者WX_M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:39:02