编写一个简单的shell程序,在TUI

时间:2015-09-28 17:02:34

标签: shell

我正在考虑编写一个简单的shell程序,它将在控制台中显示已完成工作百分比的输出。 像这样的东西: -

2%==>

这将增加相对于完成的工作的箭头。 我不想每次都在新的生产线上打印装载机。 我的做法应该是什么?' *我经常看到这个东西用于wget和类似的命令
TIA

1 个答案:

答案 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."

注意第二行如何在末尾有一些额外的空格;这个填充用于确保原始行内容的末尾被覆盖。

也就是说,如果您只想要一个已经为您构建的状态栏,那么已经有很多解决方案: