赞
踩
今天写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)
这么简单的问题。 搞了一个钟头。 我擦了。特此备忘。
原文截图如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。