当前位置:   article > 正文

LinuxShell脚本比较运算符, -gt, -lt; > < 的区别

-lt

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

原始代码如下:

  1. #!/bin/bash
  2. # 定义 a = 1111
  3. a=1111
  4. # 如果 a 大于 999 则打印 "大于"; 操蛋的是这里并不会打印
  5. if [[ ${a} > 999 ]]; then
  6. echo "大于"
  7. fi

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

然后修改如下就正常了。

  1. #!/bin/bash
  2. a=1111
  3. if [[ ${a} -gt 999 ]]; then
  4. echo "大于"
  5. fi

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

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

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

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

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

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

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

原文截图如下:

 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/154459
推荐阅读
相关标签
  

闽ICP备14008679号