如何将连续运行节点脚本的stdout传输到ruby脚本中

时间:2014-10-31 15:02:45

标签: ruby pipe stdout

我有numbers.rb

loop do
  puts rand(10)
  sleep(1)
end

我有pipe.rb

ARGF.each_line do |line|
  puts "received #{line}"
end

我正在尝试将number.rb的输出传递给pipe.rb.像这样 -

ruby lib/numbers.rb | ruby pipe.rb

然而,这并不是我想做的事情。基本上,在进程号.rb停止执行之前,似乎没有收到管道输入。但是numbers.rb不应该结束。我如何连续地将numbers.rb的stdout传输给pipe.rb?

1 个答案:

答案 0 :(得分:1)

发布此问题后10秒钟,找出了答案。必须将$stdout.sync = true放在numbers.rb

的顶部