2014-10-04 73 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