ruby - 将程序的输出获取到 Ruby 处理中

标签 ruby linux processing

我正在使用Ruby processing library .

我想将程序的输出通过管道传输到我的代码中。例如,echo "hello"| rp5 运行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。

最佳答案

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

关于ruby - 将程序的输出获取到 Ruby 处理中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18010037/

相关文章:

ruby - 如何将这个循环减少到单行代码?

jquery - 手动访问 client_side_validations 验证函数

linux - 使用 sed 和 find 插入文件内容

java - 处理:当从 Eclipse 设置内部调用时,createShape 返回 null

java - 如何在处理项目中使用Gradle?

ruby - 为什么twiddle wakka要这样设计?

ruby - 无法安装 Ruby Gems (Ubuntu 15.04) - "Network is unreachable"

c++ - Ubuntu 14 中 QtCreator [Yocto Image] 的交叉编译错误

linux - 为什么文件系统无法识别名为 ../blah.sh 的文件

scala - 在 Scala 中运行处理 PApplet