在Ruby中的popen3中将值存储在stdout中

时间:2011-12-21 02:46:54

标签: ruby string popen

如何从以下Ruby代码中将字符串值存储在stdout中?

stdin, stdout, stderr = Open3.popen3('grep something test.txt')

我可以显示如下值:stdout.gets。但是,尝试存储这样的值:s = stdout.gets只需将s设置为nil。尝试存储这样的值:s = stdout"#<IO:0x1003abe10>"中存储s之类的内容。

2 个答案:

答案 0 :(得分:1)

output = stdout.read似乎有效。

答案 1 :(得分:1)

Open3.capture3可能是你想要的;它为您提供STDOUT和STDERR的字符串,以及进程的状态:

outstr, errstr, status = Open3.capture3('/bin/command-here', param, param2)
logger.info 'output: ' + outstr + '; error: ' + errstr 
             + "; " return code: " + status.exitstatus.to_s