如何从以下Ruby代码中将字符串值存储在stdout
中?
stdin, stdout, stderr = Open3.popen3('grep something test.txt')
我可以显示如下值:stdout.gets
。但是,尝试存储这样的值:s = stdout.gets
只需将s
设置为nil
。尝试存储这样的值:s = stdout
在"#<IO:0x1003abe10>"
中存储s
之类的内容。
答案 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