【发布时间】:2014-11-16 07:46:05
【问题描述】:
我正在尝试对命令的输出进行 grep:
java -version
java -XshowSettings
但他们似乎拒绝被重定向或通过管道传输。
我试过了
java -version | grep whatever
java -version > jout.txt
但两者都只是将输出打印到屏幕上。
发生了什么事?
谢谢, 吉拉德。
【问题讨论】:
标签: java
我正在尝试对命令的输出进行 grep:
java -version
java -XshowSettings
但他们似乎拒绝被重定向或通过管道传输。
我试过了
java -version | grep whatever
java -version > jout.txt
但两者都只是将输出打印到屏幕上。
发生了什么事?
谢谢, 吉拉德。
【问题讨论】:
标签: java
您需要先重定向到标准输出,然后才能像这样进行管道传输。这些消息默认发送到标准错误,而不是标准输出;这意味着grep 不会看到这些消息,它们只会被打印到控制台。
如果是Linux,试试
java -version 2>&1 | grep whatever
它应该可以工作。这会将java执行的所有输出带到stderr,并将其重定向到与stdout相同的位置;然后您的grep 调用将能够看到它。
【讨论】: