我想从我的 Ruby 脚本中运行一个程序,但我想分别捕获程序的 STDOUT 和 STDERR,而不将它们混合在一起,因此2>&1
在命令 shell 上执行不会对我有用。
我真的不希望将这些指向临时文件并将临时文件读回我的脚本。有没有办法可以在我的 Ruby 脚本中直接获取这两者?
我想从我的 Ruby 脚本中运行一个程序,但我想分别捕获程序的 STDOUT 和 STDERR,而不将它们混合在一起,因此2>&1
在命令 shell 上执行不会对我有用。
我真的不希望将这些指向临时文件并将临时文件读回我的脚本。有没有办法可以在我的 Ruby 脚本中直接获取这两者?
您应该使用 Open3 类。它提供了执行 shell 命令的方法,这些命令可以将 stdin、stdout 和 stderr 作为单独的 IO 对象返回。
http://ruby-doc.org/stdlib-1.9.3/libdoc/open3/rdoc/Open3.html#method-c-popen3