如何更新屏幕上的数据而不在* nix或Perl中打印新行?

时间:2013-09-12 15:34:19

标签: linux perl unix

这就是我希望输出显示的内容:

_______ of __________ total files, __________% complete

我有能力更新所有这些单独的值(即'_'),但我想只更新值,而不是每次都打印一个新行。这有可能吗?

3 个答案:

答案 0 :(得分:3)

perl -e '$i=0;$|=1;while (1) { sleep 1; print $i++ . " of 199990 files \r"; }'

或使用Curses模块

答案 1 :(得分:0)

查看Curses模块 - curses UI它允许您使用所需的终端(以及更多)。一开始可能有点难以理解它,你可能想看看这些examples

答案 2 :(得分:0)

您可以使用ANSI escape sequence在最后一行上打印新行。

这是一种简单易用的解决方案,可防止屏幕上发送垃圾邮件。