我不清楚“puts”如何在 Ruby 中用于将其输出抛出到 stderr 的命令的输出。
看看这段代码:
command="/usr/bin/java -version"
result=`#{command}`
puts result
puts "XX#{result}XX"
结果是:
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
XXXX
java -version 将其输出发送到 stderr (我知道为了防止这种情况,我应该在命令末尾使用 2>&1 )
我的问题:变量“结果”实际上是空的,但第一个输出打印标准错误输出,第二个输出标准输出(为空)。为什么?这是怎么回事?