今天写centos脚本的时候,遇到了一个问题, 条件不是按照我预设的方向。卧槽。蒙了都。
原始代码如下:
#!/bin/bash
# 定义 a = 1111
a=1111# 如果 a 大于 999 则打印 "大于"; 操蛋的是这里并不会打印
if [[ ${a} > 999 ]]; thenecho "大于"
fi
上面代码定义变量 a=1111, 判断如果大于999就打印 大于字样。 操蛋的是不打印。我擦。
然后修改如下就正常了。
#!/bin/bash
a=1111if [[ ${a} -gt 999 ]]; thenecho "大于"
fi
后面借助google, 原来 在 linux shell脚本里面; 逻辑运算符是以下规则:
-gt, -lt, -eq : 这些运算符是用于整数之间比较的;也就是两个变量会转为整数再进行比较。
>, < = : 这些运算符是比较字符串的;也就是变量会先转为字符串再比较ASCII码。
另外多嘴一句, -gt; -lt 是用于数字比较没错。 但这里只能比较整数。 如果非整数的话脚本将会报错。
此时可以使用以下代码进行转换为整数:
# 浮点数转整数
# 将 cpuIdea 转为整数
cpuIdea=$(printf "%.0f" $cpuIdea)
这么简单的问题。 搞了一个钟头。 我擦了。特此备忘。
原文截图如下: