在我的项目中,我必须在远程机器上执行一个命令。此外,我还必须实时捕获和显示命令的输出。例如,如果我在远程机器上运行'dir‘命令,那么我应该显示执行该命令所需的时间(大约还剩2分钟)。
发布于 2014-03-20 13:04:22
您可以尝试使用红宝石-进度条宝石,并将输出放在可以读取的文件中。
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发布于 2014-03-20 13:04:14
看看这,我想它至少回答了你的一个问题
但我不知道如何轻松地为您提供该命令的执行时间
您可能需要首先运行所有可能的命令来估计它们的执行时间,并将这些数据放在某个存储中(例如数据库)。
或者,您可以创建表来存储该时间,并在每次执行命令后增长该表,因此当用户试图运行该表中已经存在的命令时,您将给出上次运行该表时估计的用户时间;
https://stackoverflow.com/questions/22533193
复制相似问题