首页 > 解决方案 > 用数组填充的循环仅填充第一个元素

问题描述

我正在尝试遍历文件(nodeListTxt 是一个文件路径数组)并 grep 时间戳。然而,所有 4 个时间戳似乎都在填充数组的第一个元素,而不是每个时间戳一个元素。此外,如果 grep 语句没有获取 4 个时间戳,则 echo $iter 仅将 1 打印到终端,这表明循环不起作用。不知道如何解决这个问题

recieveTimes=()
sentTimes=()

printTestHeader "Trace Behavior"
for i in "${nodeListTxt[@]}"
do
    iter=$((iter + 1))
    echo $iter
    echoSleep 5
    recieveTimes[$iter]=$(grep  -m 1 '\"path\":' ${i}| sed 's/.*timestampUtc\"://g' | sed 's/,.*//g')
    sentTimes[$iter]=$(grep  -m 2 '\"path\":' ${i}| sed 's/.*timestampUtc\"://g' | sed 's/,.*//g')
done

回声

标签: arraysbashloopsfor-loop

解决方案


推荐阅读