首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ruby实时捕获输出?

如何使用ruby实时捕获输出?
EN

Stack Overflow用户
提问于 2014-03-20 12:34:12
回答 2查看 143关注 0票数 0

在我的项目中,我必须在远程机器上执行一个命令。此外,我还必须实时捕获和显示命令的输出。例如,如果我在远程机器上运行'dir‘命令,那么我应该显示执行该命令所需的时间(大约还剩2分钟)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-20 13:04:22

您可以尝试使用红宝石-进度条宝石,并将输出放在可以读取的文件中。

代码语言:javascript
复制
require 'ruby-progressbar'
p = ProgressBar.create(:format => '%a %B %p%% %t')
=> #<ProgressBar:0/100>           

 def test(p)
    d = Dir.new('ank')
    d.each do |file|
      sleep 4
      puts file
      p.increment
    end
end
=> nil 


1.9.3-p545 :029 > test(p)
.
..me: 00:00:06 =1% Progress                                                                                                    
bare:                                          00:00:10 == 2% Progress                                                                                                  
baze:                                        00:00:14 === 3% Progress                                                                                                
fooe:                                       00:00:18 ==== 4% Progress                                                                                               
 => #<Dir:ank> =====                                                                                                5% Progress
票数 1
EN

Stack Overflow用户

发布于 2014-03-20 13:04:14

看看,我想它至少回答了你的一个问题

但我不知道如何轻松地为您提供该命令的执行时间

您可能需要首先运行所有可能的命令来估计它们的执行时间,并将这些数据放在某个存储中(例如数据库)。

或者,您可以创建表来存储该时间,并在每次执行命令后增长该表,因此当用户试图运行该表中已经存在的命令时,您将给出上次运行该表时估计的用户时间;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22533193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档