LinuxShell脚本比较运算符, -gt, -lt; > < 的区别
今天写centos脚本的时候,遇到了一个问题, 条件不是按照我预设的方向。卧槽。蒙了都。原始代码如下:#!/bin/basha=1111if [[ ${a} > 999 ]]; thenecho "大于"fi上面代码定义变量 a=1111, 判断如果大于999就打印 大于字样。 操蛋的是不打印。我擦。然后修改如下就正常了。#!/bin/basha=1111if [[ ${a} -gt 999
·
今天写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)
这么简单的问题。 搞了一个钟头。 我擦了。特此备忘。
原文截图如下:
更多推荐
已为社区贡献2条内容
所有评论(0)