我想在 bash 中实现一个显示经过秒数的进度条。为此,我需要擦除屏幕上显示的最后一行(命令“clear”会擦除所有屏幕,但我只需要擦除进度条的行并将其替换为新信息)。
最终结果应如下所示:
$ Elapsed time 5 seconds
然后 10 秒后我想用以下内容替换这句话(在屏幕中的同一位置):
$ Elapsed time 15 seconds
回车符本身仅将光标移动到行首。如果每一个新的输出行至少与前一行一样长,那是可以的,但是如果新行更短,则前一行将不会被完全覆盖,例如:
$ echo -e "abcdefghijklmnopqrstuvwxyz\r0123456789"
0123456789klmnopqrstuvwxyz
要实际清除新文本的行,您可以添加\033[K
之后\r
:
$ echo -e "abcdefghijklmnopqrstuvwxyz\r\033[K0123456789"
0123456789
http://en.wikipedia.org/wiki/ANSI_escape_code
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)