我正在考虑编写一个简单的shell程序,它将在控制台中显示已完成工作百分比的输出。 像这样的东西: -
2%==>
这将增加相对于完成的工作的箭头。
我不想每次都在新的生产线上打印装载机。
我的做法应该是什么?'
*我经常看到这个东西用于wget和类似的命令
TIA
答案 0 :(得分:1)
要更新光标所在的行,请发送CR("回车",\r
)以将光标发送("返回")光标开头现有的行,您可以从中打印新内容。将此与新行(\n
)进行对比,后者将光标移动到新行。
要查看此操作,请尝试运行以下命令:
printf '%s\r' "Existing contents being written here"
sleep 1
printf '%s\r' "New contents being written here "
sleep 1
printf '%s\n' "Writing final contents and moving to a new line"
printf '%s\n' "This is written to a second line."
注意第二行如何在末尾有一些额外的空格;这个填充用于确保原始行内容的末尾被覆盖。
也就是说,如果您只想要一个已经为您构建的状态栏,那么已经有很多解决方案: