使用指定的环境变量执行非阻塞shell命令

时间:2013-02-28 12:01:30

标签: ruby cucumber popen

我尝试使用指定的环境变量set调用shell命令,并将命令的STDOUT重定向到我程序的STDOUT。

我试过了:

IO.popen({'DISPLAY' => ':0.0'}, "cucumber"){ |f| STDOUT.puts f.gets }

但我得到Broken pipe错误。如果没有阻止{ |f| STDOUT.puts f.gets }

,则不会出现此错误

如何将命令的输出重定向到STDOUT?

注意:我试过了:

IO.popen({'DISPLAY' => ':0.0'}, "cucumber", out: STDOUT)

但它不会向STDOUT打印任何内容。

1 个答案:

答案 0 :(得分:1)

我是用它做的:

IO.popen([{'DISPLAY' => ':0.0'}, 'cucumber']) { |f| f.each { |line| print line } }