ruby管道来打击命令

时间:2013-05-14 21:14:15

标签: ruby bash pipe

我正在为axel创建一个ruby包装器,它会向网站目录发出一个HTTP get请求,解析它的可下载内容,然后将完整的URL传递给axel,按顺序逐个下载,因为axel没有这个能力。 (从Firefox' DownThemAll!"插件获得了这个想法。)

我的问题是,是否有可能在ruby中采取axel STDOUT响应并从我的ruby包装器实时显示或者可能是x秒?我知道如果我使用了后退滴答或运行命令的%w()方法,在axel完成下载之后我将看不到其STDOUT的任何结果,但我想知道是否有可能获取其输出它正在运行,以便我可以从我的包装器中显示其下载状态。 (在axel上使用-a标志作为备用视图,因此它不会滚动屏幕。)

感谢您提供有关此主题的任何信息。

PS:如果我必须重新绘制屏幕,​​我也不介意。如每隔x秒获取axels STDOUT,清除屏幕,然后从我的包装器输出新信息。

1 个答案:

答案 0 :(得分:0)

在与朋友谈了一下后,他向我指出了这正是我所需要的。

http://www.ruby-doc.org/stdlib-1.9.3/libdoc/pty/rdoc/PTY.html