如何在unix中将变量与文本进行比较

Posted

技术标签:

【中文标题】如何在unix中将变量与文本进行比较【英文标题】:How to compare variable to text in unix 【发布时间】:2015-06-20 17:41:49 【问题描述】:

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

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

then echo bravo;

fi

如何让它工作?提前致谢

【问题讨论】:

阅读[[ 运算符的手册。我认为,您需要引号之外的尾随 .* 【参考方案1】:

我会在这里使用 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

【讨论】:

这是非常经典的做法,而且非常明确。

以上是关于如何在unix中将变量与文本进行比较的主要内容,如果未能解决你的问题,请参考以下文章

python - 如何在Python中将pandas DataFrame与None进行比较?

如何在 C 中将 10131520 转换为 Unix 纪元时间?

如何在 sql server 2008 中将日期与 GETDATE() 进行比较

如何在linq where子句中将int与字符串进行比较[重复]

Highcharts:是不是可以在工具提示格式化程序中将系列与外部变量进行比较?

如何在Matlab中将每个矩阵与平均值和返回值进行比较