在 Korn shell 脚本中检查一系列 RedHat 版本

Checking a range of RedHat versions in Korn shell script

我有一个 Korn shell 脚本,以下代码有效:

if [ $LINUXVER = 7.2 ] || [ $LINUXVER = 7.3 ]; then

但我想修改代码,使范围涵盖 7.27.37.4 等。我知道我需要使用类似 [0-9],我尝试了很多东西,但没有任何效果。此脚本 运行 在多个远程服务器上,而不是脚本所在的本地服务器上。

如有任何帮助,我们将不胜感激。

如果您使用的是相对较新的 ksh(ksh93 或兼容的克隆),那么您可以在数学表达式中使用双括号。例如

testver() {
   if (( LINUXVER <= 7.1 || LINUXVER >= 7.4 )); then
      print "Unsupported version $LINUXVER"
   else
      print "Supported version $LINUXVER"
   fi
}

LINUXVER=6.9
testver
LINUXVER=7.2
testver
LINUXVER=8.0
testver

这个脚本的输出是

Unsupported version 6.9
Supported version 7.2
Unsupported version 8.0