如何从以下Ruby代码中将字符串值存储在stdout
中?Ruby中popen3的stdout中的存储值
stdin, stdout, stderr = Open3.popen3('grep something test.txt')
我可以显示这样的值:stdout.gets
。然而试图存储这样的值:s = stdout.gets
只是将s
设置为nil
。尝试存储像这样的值:s = stdout
在s
中存储类似"#<IO:0x1003abe10>"
的内容。
如何从以下Ruby代码中将字符串值存储在stdout
中?Ruby中popen3的stdout中的存储值
stdin, stdout, stderr = Open3.popen3('grep something test.txt')
我可以显示这样的值:stdout.gets
。然而试图存储这样的值:s = stdout.gets
只是将s
设置为nil
。尝试存储像这样的值:s = stdout
在s
中存储类似"#<IO:0x1003abe10>"
的内容。
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
您是否尝试执行'stout.gets'后执行'S = stdout.gets'? – cyfdecyf 2011-12-21 02:58:38
我不这么认为。我只想将值存储在stdout中的字符串中。接下来,我会做's.chomp(“\ n”)' – SundayMonday 2011-12-21 03:06:03