脚本中的OSX bash管道未按预期工作
为了获得java版本,我在bash中运行了这个(我真正想要的是1.8或1.8.0_171) 在我的测试脚本中,仅获取第一行就可以了,因此我执行以下操作:脚本中的OSX bash管道未按预期工作,bash,pipe,piping,macos-high-sierra,Bash,Pipe,Piping,Macos High Sierra,为了获得java版本,我在bash中运行了这个(我真正想要的是1.8或1.8.0_171) 在我的测试脚本中,仅获取第一行就可以了,因此我执行以下操作: 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 (bui
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寻求帮助,结果也一样
我做错了什么?
java-version
写入标准错误,而不是标准输出,因此grep
没有接收任何输入
java -version 2>&1 | grep java
应该做你想做的事。我一时想起来了,应该检查一下。谢谢
java -version 2>&1 | grep java