2013-02-28 76 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 } }