2014-10-04 69 views
0

在Linux中安装东西时,我经常看到在打印后发生stdout变化,例如。可能会有一个显示安装进度的计数器,从1%开始并上升到100%。这是如何完成的?当我编写C程序并使用printf打印某些内容时,我无法在之后进行更改 - 如果键入1%,则保持不变。它是如何完成的?有不同的功能,我必须使用?在Linux中如何实现花哨的命令行?

回答

1

\ r将您带回到行的开头,而不会发出\ n转到下一行。使用此覆盖在屏幕上的文本来构建进度条等

参见:

How to add a progress bar to a shell script?

+0

谢谢!这正是我想要的。 – user1299784 2014-10-04 01:36:51

+0

您可能会发现'\ r'具有明显的局限性,并且很可能希望使用'tput'或'\ 033'后面的ansi转义序列来控制游标。请参阅:[** ANSI转义序列:颜色和光标移动**](http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html)。例如:在命令行中复制并粘贴以下内容:'(for in in $(seq 1 100); do printf“\ 033 [s \ 033 [u%3d %% \ 033 [u”“$ i”; sleep 0.1;完成)' – 2014-10-04 01:55:08