如何在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与字符串进行比较[重复]