【发布时间】:2011-01-21 03:27:05
【问题描述】:
当您运行git clone 时,它会及时更新进度。例如,对象收到就地变化的百分比。
user@athena:~/cloj/src$ git clone git://git.boinkor.net/slime.git
Initialized empty Git repository in /home/user/cloj/src/slime/.git/
remote: Counting objects: 15936, done.
remote: Compressing objects: 100% (5500/5500), done.
Receiving objects: 28% (4547/15936), 3.16 MiB | 165 KiB/s
这是如何完成的?它是使用 ncurses 还是更简单的东西,例如退格字符和常规字符输出的某种组合?
我对如何通过 Ruby 实现这种控制台输出特别感兴趣。
编辑
我最初的问题得到了回答。但这里有一个附录。例如,当您使用 MPlayer 时,它不仅会更新一行以显示当前进度,还会更新 previous 行(例如,当您按下暂停时)。
===== PAUSE =====
A: 79.9 (01:19.9) of 4718.0 ( 1:18:38.0) 0.3%
如何就地更新两行输出?
【问题讨论】:
-
这个问题和相关的答案正是让 Stack Overflow 变得很棒的原因。谢谢他们。
标签: ruby unix terminal ncurses