ruby 捕捉系统命令屏幕输出

ruby

试过一些方法如下,下面三个只能捕捉到系统命令的最终返回值(stdout),而不是屏幕上的输出

exec("echo 'hello world'") # exits from ruby, then runs the command
system('echo', 'hello world') # returns the status code
`echo "hello world"` # returns stdout
%x[echo 'hello world'] # returns stdout

最终解决方式

require 'open3'
command = 'echo "hello world"'
Open3.capture3(command)[1]

from https://blog.honeybadger.io/capturing-stdout-stderr-from-shell-commands-via-ruby/

发表于 2018.12.18