0

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

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

then echo bravo;

fi

如何使它工作?提前致谢

4

1 回答 1

2

我会在这里使用 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
于 2015-04-14T23:49:08.373 回答