Ruby on rails 如何使用ruby实时捕获输出?

Ruby on rails 如何使用ruby实时捕获输出?,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我的项目中,我必须在远程机器上执行一个命令。我还必须实时捕获和显示命令的输出。例如,如果我正在远程计算机中运行'dir'命令,那么我应该显示执行该命令所需的分钟数(如剩余2分钟) 看看,我想它至少回答了你的一个问题 但我不知道如何轻松地为您提供该命令的执行时间 您可能需要首先运行所有可能的命令来估计它们的执行时间,并将该数据放入某些存储器(例如数据库) 或者,您可以创建一个表来存储该时间,并在每次命令执行后扩展该表,因此当用户尝试运行该表中已经存在的命令时,您可以给出上次运行该命令时估计的用户

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

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

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

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

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

您可以尝试使用,并将输出放在可以读取的文件中

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
需要“ruby progressbar”
p=ProgressBar.create(:format=>“%a%B%p%%%t”)
=> #           
def测试(p)
d=新目录('ank')
d、 每个do |文件|
睡眠4
放置文件
p、 增量
结束
结束
=>零
1.9.3-p545:029>试验(p)
.
…me:00:00:06=1%的进度
裸:00:00:10==2%进度
baze:00:00:14===3%的进度
fooe:00:00:18===4%的进度
=>#===5%的进度