我for
在交互式bash
会话中开始了一个循环。对于这个问题,我们可以假设循环类似于
for i in dir/*; do
program "$i"
done > log
该命令花费的时间比预期的要长得多,并且仍在运行。如何查看运行for
循环的当前进度。
非解决方案:
- 看
log
。
不起作用,因为:program
预计会静默运行。您可以将其program
视为验证者。如果循环完成而没有任何输出,那么我很高兴。 - 停止循环。添加某种进度指示(例如
echo "$i"
)。再次开始循环。
不起作用,因为:循环已经运行了几个小时。我不想浪费在当前跑步中投入的所有时间和精力。我假设一切正常。我只是好奇,想知道目前的进展。 - Ctrl+ Zthen
set -x; fg
不起作用,因为:bash
使用时不继续循环fg
。只有循环内的当前/下一个命令将运行后fg
,循环退出。您可以使用for i in {1..200}; do printf '%s ' $i; /usr/bin/sleep 0.5; done
.