介绍
我pv
在管道中使用命令来显示进度条。我用一个简单的计数器试了一下:
for (( i = 1 ; i <= 100 ; i++ )); do sleep 1; echo $i; done | pv --progress --line-mode --size 100 --eta --timer
这很好用,但我希望进度条显示在同一行。这个答案解释了如何做到这一点。
所以我尝试了这个:
for (( i = 1 ; i <= 100 ; i++ )); do sleep 1; echo $i; done | >&2 echo -en "\r"; pv --progress --line-mode --size 100 --eta --timer
它保持在一条线上,但现在它不再更新 ETA。
问题
我怎样才能让 ETA 也更新?
更新
既然 iBug回答了上一节的问题,我意识到我还有一个相关的要求:stdout
需要保留,以便可以在下一个管道中使用。在我的具体情况下,我需要将结果写入文件(即> some-file.txt
)