用于检查jdk版本是否高于1.8的Shell脚本

时间:2020-04-23 14:14:38

标签: linux shell

在脚本中,我要检查是否已安装Java,以及Java是否比1.8更新。

java -version 2>$1 >/dev/null | egrep "\S+\s+version" | awk '{print substr($3,0,5)}' | tr -d '"'

我猜结果可能是这样的:

1.8.0_225
11.0.2
1.6.1_223

因此要使其具有可比性,请将此值映射到\d+\.\d+

1.80225
11.02
1.61223

可以通过将除了第一个点以外的不是数字的所有内容替换为空来实现。

1 个答案:

答案 0 :(得分:0)

您可以在下面这样使用awk:

java -version 2>&1 | awk  -F[\"._] '/version/{print $2"."$3$4$5$6$7}'

使用sed:

java -version 2>&1 | sed -Ee 's/.*"(.*)"$/\1/g;s/^([0-9]+\.[0-9]+\.)([0-9]+)[^0-9]/\1\2/g;q'
相关问题