我注意到很多命令行工具,例如wget,都会显示进度,因为数字或进度条在进程完成时会前进。虽然这个问题并不是特定于语言的,但我最常使用的语言是命令行工具(C++,Node.js,Haskell),但我还没有看到这样做的方法。命令行工具在输出后如何更改其输出?
下面是一个例子,终端的作为wget的一个单线的三个快照下载文件:
随着其他信息,wget的显示一个进度条(< =>),该前进,因为它下载文件。目前下载的数据量(6363,179561,316053)和当前下载速度(10.7KB /秒,65.8KB /秒,63.0KB /秒)也更新。这是如何完成的?
理想情况下,请包含上述三种语言中的一种或多种语言的代码示例。
我猜他们使用原生API – yizzlez
他们可能使用[ncurses的(http://invisible-island.net/ncurses/) –
Haskell有一个好的,简单'ncurses' API:HTTPS:/ /hackage.haskell.org/package/ncurses – dfeuer