如何從以下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