如何在 unix 中比较变量和文本

How to compare variable to text in unix

我已经尝试了很多版本,但是 none 其中 work.I 想要比较变量 - 这里是 os 的版本,带有一些字符串。我想检查它是否大于指定版本。当我传递确切的名称时它很好,但是当我想用 .* 替换某些东西时它不起作用。

if [[ "$(uname -r)" == '3\.18.*' ]];

then echo bravo;

fi

如何让它发挥作用?提前致谢

我会在这里使用 case 语句:

case $(uname -r) in
(3.18.*) echo bravo;;
esac

如果你想检查版本是否大于某个值,你可以使用类似的东西:

case $(uname -r) in
(3.1[89].*|3.[2-9]*|[4-9]*) echo bravo;;
(*) echo alpha;;
esac