2013-03-06 54 views
0

我的意思是尾巴是在運行時捕獲命令輸出,而不是在執行結束時捕獲命令。例如,如果你做一個長期運行的命令,它會是這個樣子:如何在ruby中「尾巴」命令的輸出

# Run command 
puts `ey deploy` 
# Nothing happening for a while.... 
# ... 
# Now see all of the output at once. 

我希望做的是貫穿紅寶石命令,看看它的輸出因爲它的發生。

+0

把整個命令(與'尾巴')在反引號中。 – 2013-03-06 03:49:52

回答

0

如你所見,反引號將等待整個命令完成,然後將其輸出作爲單個字符串返回。爲了得到輸出,因爲它的生產,嘗試Open3::popen2e

下面是使用一個bash循環,睡的每一行之間的第二演示此接口的增量流性質的例子:

require 'open3' 

CMD = %{for ((i=0; i<4; i++)); do echo $i; sleep 1; done} 

Open3.popen2e('bash', '-c', CMD) do |i,oe,t| 
    oe.each { |line| puts line } 
end 
+0

會放棄它。 – Uri 2013-03-06 04:55:15

相關問題