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

时间:2015-04-14 22:54:44

标签: unix if-statement comparison uname

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

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

then echo bravo;

fi

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

1 个答案:

答案 0 :(得分:2)

我会在这里使用一个案例陈述:

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