要获取java版本,我在bash中运行它(我真正想要的是1.8或1.8.0_171)
$ java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
在我的测试脚本中,只需获取第一行即可,所以我执行此操作:
java -version | grep java
echo return is $?
返回:
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
return is 1
根据手册页grep的返回表明它没有错误,但发现没有匹配,所以打印出“java -version”的结果。
我尝试过使用一些不同的搜索模式grep并尝试使用sed和aux,使用Google寻求帮助,以及相同的搜索结果。
我做错了什么?
答案 0 :(得分:1)
java -version
写入标准错误,而非标准输出,因此grep
不接收任何输入。
java -version 2>&1 | grep java
应该做你期望的事。