今天写centos脚本的时候,遇到了一个问题, 条件不是按照我预设的方向。卧槽。蒙了都。

原始代码如下:

#!/bin/bash
# 定义 a = 1111
a=1111

# 如果 a 大于 999 则打印 "大于"; 操蛋的是这里并不会打印
if [[ ${a} > 999 ]]; then
	echo "大于"
fi

上面代码定义变量 a=1111, 判断如果大于999就打印 大于字样。 操蛋的是不打印。我擦。

然后修改如下就正常了。

#!/bin/bash
a=1111

if [[ ${a} -gt 999 ]]; then
	echo "大于"
fi

后面借助google, 原来 在 linux shell脚本里面; 逻辑运算符是以下规则:

-gt, -lt, -eq : 这些运算符是用于整数之间比较的;也就是两个变量会转为整数再进行比较。

>, < = : 这些运算符是比较字符串的;也就是变量会先转为字符串再比较ASCII码。

另外多嘴一句, -gt; -lt 是用于数字比较没错。 但这里只能比较整数。 如果非整数的话脚本将会报错。

此时可以使用以下代码进行转换为整数:

# 浮点数转整数
# 将 cpuIdea 转为整数
cpuIdea=$(printf "%.0f" $cpuIdea)

这么简单的问题。 搞了一个钟头。 我擦了。特此备忘。

原文截图如下:

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐