0

我正在使用Ruby 处理库

我想将程序的输出通过管道传输到我的代码中。例如,echo "hello" | rp5 run receiver.rb

在一个正常的程序中,我知道我可以做到这一点

while $stdin.gets
  puts $_
  puts "Receiving!"
end

而且我知道在处理过程中,程序会draw不断地循环函数。所以我尝试了这段代码,但它不起作用,因为它冻结在线上puts $stdin.gets。所以我知道这一定是管道不匹配的问题,所以我将尝试使用命名管道,以免造成混淆。

def setup
    puts "setting up"
end

def draw
    puts "drawing"
    puts $stdin
    puts $stdin.gets
    puts "after gets"
    while $stdin.gets
        puts $_
        puts "Receiving!"
    end
    puts "done drawing"
end

任何建议将不胜感激。我正在运行 Ubuntu 12.04。

4

1 回答 1

0

是的,名称管道起作用了。查看此示例以帮助您入门,并确保您已加载最新版本的 JRuby。

于 2013-08-02T07:02:05.643 回答