在我的项目中,我必须在远程机器中执行命令。而且我必须实时捕获并显示命令的输出。例如,如果我在远程计算机上运行'dir'命令,那么我应该显示执行所需的分钟数(例如剩余2分钟)命令。
答案 0 :(得分:1)
您可以尝试使用ruby-progressbar gem并将输出放在可以阅读的文件中
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 :(得分:0)
看一下this,我想它至少可以回答你的一个问题
但我不确定如何轻松地为您提供该命令的执行时间
您可能需要先运行所有可能的命令来估计其执行时间,然后将该数据放入某个存储区(例如数据库)。
或者您可以创建表来存储该时间并在每个命令执行后增大该表,因此当用户尝试运行该表中已存在的命令时,您将为用户提供上次运行时的估计时间;