我已经知道"/>

关于 unix:如何在 Ruby 中使用 (n)curses?

关于 unix:如何在 Ruby 中使用 (n)curses?

How do I use (n)curses in Ruby?

我想在 Ruby 中创建一个进度条来指示批处理作业的状态。

我已经阅读了一些关于使用 (n)curses 的教程/库,它们都没有特别有助于解释如何在终端中创建"动画"进度条或使用带有 Ruby 的 curses。

我已经知道使用单独的线程来监控给定作业的进度,我只是不确定如何继续绘制进度条。

更新

ProgressBar 类非常简单,完美地解决了我的问题。


您也许可以从生成文本进度条的 Ruby/ProgressBar 库中获得一些实现思路。几个月前我偶然发现了它,但没有使用它。


很晚的答案,很抱歉自我推销,但我创建了库来显示终端的进度。


我个人认为在这种情况下,curses 是多余的。虽然 curses 库很好(我自己也经常使用它),但每次我 12 个月不需要它时都要重新学习 PITA,这一定是界面设计糟糕的标志。

如果由于某种原因你不能继续使用进度条库,乔伊建议你自己动手,并在一个非常免费的许可证下发布它以获得即时荣誉:)


在 Windows 上,curses 可以开箱即用,ncurses 不能,对于进度条来说,curses 应该足够了。因此,请使用 curses 而不是 ncurses。

此外,curses 和 ncurses 都是围绕 c 库的薄薄的package器——这意味着您实际上并不需要特定于 Ruby 的教程。

但是,在 PickAxe 网站上,您可以下载本书的所有代码示例。文件 "ex1423.rb" 包含一个可播放 Pong 的 curses 演示 - 它应该为您提供足够的材料来帮助您前进。


推荐阅读