2013-02-28 17 views
0

我尝试使用指定的环境变量设置调用shell命令,并将命令的STDOUT重定向到我的程序的STDOUT。使用指定的环境变量执行非阻塞shell命令

我想:

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

我做到了使用:

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