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

Bash使用readarray读取文件为数组时仅返回第一行问题求助

问题原因

readarray -t命令已经将输入文件的每一行正确存入samples数组的不同元素中,但Bash中直接引用$samples默认只会取数组第一个下标(下标0)对应的元素,因此遍历仅输出第一个样本。

修复方法

遍历Bash数组需要使用"${samples[@]}"语法,该语法会展开数组的所有元素,外层双引号可以避免样本名包含空格、特殊符号时出现分词异常。

修复后的完整代码如下:

#!/bin/bash
readarray -t samples </local/path/to/data/prev_step.failed

# 可选:打印读取到的样本总数,验证读取是否正确
# echo "读取到的失败样本总数:${#samples[@]}"

for samp in "${samples[@]}"
do
    echo $samp
    # 此处编写针对$samp的处理逻辑
done

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:27:03