linux shell javaバージョン番号の取得
1948 ワード
Javaバージョン番号の取得
Javaタイプ(openjdk)およびバージョン番号の取得
説明:shellでjavaバージョン番号を取得する最も基本的な考え方は
コード中の
次の
$ java -version 2>&1 | sed '1!d' | sed -e 's/"//g' | awk '{print $3}'
1.8.0_222
Javaタイプ(openjdk)およびバージョン番号の取得
$ java -version 2>&1 | sed '1!d' | sed -e 's/"//g' -e 's/version//'
openjdk 1.8.0_222
説明:shellでjavaバージョン番号を取得する最も基本的な考え方は
java -version
の出力内容から出版本号を解析することであるが、java -version
の出力はデフォルトのstdoutではなくstderrであるため、java -version
の出力からjavaバージョン番号を解析するにはjava -version
の出力をリダイレクトし、以上のシナリオにおける2>&1
は、本来stderrに出力コンテンツをstdoutにリダイレクト出力ことであり、java -version
の出力をパイプ|
を介してsed,awkなどのツールで処理することができる.コード中の
sed '1!d'
は、第1行を除くすべてのコンテンツを削除することを意味し、ここではjava -version
出力の第1行のコンテンツjava version "1.8.0_111"
のみを保持し、次にsed -e 's/"//g'
を削除するのが簡単である.すなわち、文字列中の"
号を削除するので、上記の第1行のコンテンツはさらにopenjdk version 1.8.0_222
(同理's/version//'
は削除文字列中のversion
)に処理される.次の
awk '{print $3}'
は、出力スペースの3番目のセグメントであり、最終バージョン番号1.8.0_222
です.