Если вы можете использовать чит в сценарии оболочки, используя Perl, попробуйте встроенную обработку строк версии с операторами сравнения строк:
V1=1.1.3; V2=1.1
echo $(perl -e '($x,$y)=@ARGV; print $x cmp $y' $V1 $V2)
Вы также можете покончить с переменными Perl и просто использовать shift:
result=$(perl -e 'print shift cmp shift' $V1 $V2)
Но это не работает на версиях> 10. Так что вы можете попробовать это вместо:
perl -e '($a,$b)=@ARGV; for ($a,$b) {s/(\d+)/sprintf "%5d", $1/ge}; print $a cmp $b;' 12.1.3 9.0.2
Спринт "% 5d" должен убедиться, что он будет работать даже для Firefox, до версии 99999 ...: -)
Очевидно, что вы также можете использовать другие строковые операторы Perl, такие как gt, lt, ge и le.