ITPub博客

首页 > Linux操作系统 > Linux操作系统 > java -version为stderr输出,获取java版本需要重定向

java -version为stderr输出,获取java版本需要重定向

原创 Linux操作系统 作者:你好我是李白 时间:2020-06-02 09:56:42 0 删除 编辑

现象

    今天写一个初始化服务器脚本,想获取java版本,结果使用java -version一直无法使用sed与awk处理,经过实验,发现

java -version输出为stderr,无法处理。

测试

# 将命令输出2 stderr与1 stdout分别输出到指定文件,查看文件内容,验证java -version输出为stderr
[root@template yum.repos.d]# java -version 2>/tmp/java_version_stderr.out 1>/tmp/java_stdout.out
[root@template yum.repos.d]# cat /tmp/java_version_stderr.out 
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
[root@template yum.repos.d]# cat /tmp/java_stdout.out 
#可以看到java -version输出为stderr,所以我们如果想继续处理java -version输出,需要重定向到stdout

解决

java_ver=`java -version 2>&1 | sed '1!d'|sed 's/"//g'|awk '{print $NF}'|awk -F'.' '{print $1$2}'`

参考

https://blog.csdn.net/10km/article/details/98481428


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31439444/viewspace-2695593/,如需转载,请注明出处,否则将追究法律责任。

全部评论
让生活更美好。

注册时间:2017-02-28

  • 博文量
    80
  • 访问量
    40006