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

Bash循环每次迭代将time命令stderr输出到独立文件的问题

问题根因
  • 你的原代码将time关键字包裹在整个for循环外层,time仅会执行1次,统计的是全部5次循环的总耗时,无法为单次迭代生成独立计时结果
  • 外层的重定向规则2>> $i.txt的变量解析时机在整个循环执行结束后,此时$i已经是循环最后一次的赋值(即5),不会随循环迭代动态变化
正确实现方案

把time放到循环内部,单独包裹每次迭代要执行的命令,每次迭代单独重定向time的stderr输出即可,示例代码如下:

for i in {1..5}
do
  # 用子shell包裹time和待执行命令,实现单独捕获本次time的stderr
  (time 
    # 此处替换为你实际要执行的业务命令
    sleep 1
  ) > temp.txt 2>> "${i}.txt"
done

如果不需要保留命令的stdout,可以将> temp.txt替换为> /dev/null即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:48:03