bash中,如果想要比较两个数字的大小,最常用的关系运算符就是 “-gt”或者”-lt”了

最简单的示例如下

正如上图所示,a=3,b=2,当比较两个变量时,判断变量a的值是否大于变量b的值时,返回值为0,即结果为真,判断变量a的值是否小于变量b的值时,返回值为1,即结果为假(非零值为假)。

但是细心如你一定注意到了,在上例中,两个变量的值均为数字,所以我们可以使用关系运算符”-gt”或者”-lt”比较两个数字的大小。

如果是两个字符串进行比较呢?

我们知道,字符在ASCII表中都有对应的值

字母a在ASCII表中对应的十进制数值为97

字母b在ASCII表中对应的十进制数值为98

也就是说,字母a的ASCII值应该是小于字母b的ASCII值的

那么,我们使用关系运算符,比较一下字母a与字母b,看看能否与我们想象的一样,示例如下

可以看到,当我们直接使用 “-gt”或者”-lt”比较两个字符串时,语法错误,直接报错了,看来不能这样用。

聪明如你,一定想到了,我们把上例中的”单中括号”换成”双中括号”试试,示例如下

如上图所示,虽然语法上没有报错,但是结果并不正确

字母a的ASCII值明明是小于字母b的ASCII值的

但是,判断字符”a”的ASCII值是否大于字符”b”的ASCII值时,返回值为0(为真),也就是说,与我们期望的值并不一样,换句话说就是,通过 “-gt”或者”-lt”并不能准确的比较出两个字符的ASCII值的大小。

所以,在比较两个字符的ASCII值的大小时,我们需要使用另一种符号,就是”>”或者”

没错,就是我们最常用的”大于号”或者”小于号”,示例如下

如上图所示,当我们想要比较两个字符的ASCII值时,则需要使用”>”或者”

但是需要注意的一点是,在使用单中括号时,如果想要使用”>”或者”

正如上图所示,当使用单中括号时,如果想要使用”>”或者”

综上所述,我们可以得出 结论:

在shell中,”-gt”或者”-lt”只能用于比较两个数字的大小,当我们想要比较两个字符的ASCII值时,则必须使用”>”或者””或者””或者”

那么我们来看一个应用中的小例子

如果我们想要比较两个日期的前后,我们可以将日期的格式转化为纯数字的格式,然后进行比较,数字较大的对应的日期应该较晚,示例如下

但是,有时候我们直接获取到的日期格式可能是字符串格式的,比如”2017-07-30″,难道我们必须要把这种格式转换成纯数字格式以后再对比吗?不是的,我们可以直接对比相同字符串格式的日期,日期较晚的字符串转换成ASCII以后,ASCII值应该更大,示例如下

使用上例中的方法,在比较日期的前后时,我们就不用必须转换字符串格式的日期了,省去了一个步骤,还是比较方便的。

好了,这篇文章就总结到这里,希望能够帮助到你~

求关注,求收藏,求推荐~~~

linux脚本中的gt,shell中’-gt’与’’的区别相关推荐

  1. linux脚本批量加注释,shell中如何批量注释和取消注释

    shell中如何批量注释和取消注释,注释,行号,模式,批量,命令 shell中如何批量注释和取消注释 易采站长站,站长之家为您整理了shell中如何批量注释和取消注释的相关内容. #!/bin/bas ...

  2. linux脚本判断变量存在,shell中关于变量是否存在的问题

    [TOC] ## fish shell判断某个变量是否存在 fish shell 判断变量是否存在直接使用 `test 变量`就可以,然后我们使用`and`和`or`实现if..else..的逻辑.如 ...

  3. linux脚本中的exit,Shell中exit和return的区别讲解

    1.exit命令 exit命令是Shell内建命令,用于退出当前Shell进程.使用格式如下: exit [] 可以指定退出状态n,n的取值范围是0-255,一般情况下,0表示正常退出,非零表示异常退 ...

  4. linux去除字符串的空格符,Shell中去除字符串前后空格的方法

    经常碰到的场景,需要去除字符串中的前后的空格.在Shell中不像其他语言有strip()来处理,不过也是可以使用诸如awk等命令来处理. 下面是一个简单示例: [root@localhost ~]# ...

  5. linux sed 正则提取字符串,Shell中使用grep、sed正则提取和替换字符串

    Linux中使用grep正则提取字符串 echo office365 | grep -P '\d+' -o find . -name "*.txt" | xargs grep -P ...

  6. Linux新建用户可以在shell中切换到该用户也能登录到图形桌面

    解决使用useradd testname,passwd testname命令确实创建了一个用户,可以在shell中切换到该用户.但不能登录到图形桌面的问题! 通过下面方法可以在Linux中新建用户,并 ...

  7. Shell脚本(函数,shell中的数组)

    函数 函数就是把一段代码整理到一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式:function f_name(){ command } 函数必须放在最前面 ...

  8. linux时间与日期函数,Shell中关于时间和日期的函数总结

    shell下获取系统时间的方法直接调用系统变量 获取今天时期:`date +%Y%m%d` 或 `date +%F` 或 $(date +%y%m%d) 获取昨天时期:`date -d yesterd ...

  9. linux ftp显示进度条,Shell中复制大文件显示进度

    "世间最痛苦的事莫过于等待..." 在Shell下进行大文件的复制时,常常要耗很长世间,这是一个相当乏味的过程,在GUI程序中常常会显示进度条或者完成百分比,但在Shell中如何来 ...

最新文章

  1. 宁彦吉:如何进行作业的评审?
  2. 2022年值得关注的8个人工智能趋势
  3. PXE网络无人值守装机
  4. IDEA - 解决 Maven 初始化配置 web.xml 为 2.3 的问题
  5. 对require和import的认识
  6. 【NLP实战】基于ALBERT的文本相似度计算
  7. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 3.)(python/c/c++版)(笔记)
  8. python 压缩 解压
  9. sklearn 数据预处理1: StandardScaler
  10. Linux搭建SVN服务器
  11. cmd /c和cmd /k 以及CMD命令
  12. QT制作一个串口调试助手出现乱码问题
  13. 基于Matlab系统的HVDC系统
  14. 实现MySQL读写分离---maxscale代理服务器配置(详解)
  15. mysql 父子关系查询,父子关系-SQL查询
  16. 荣耀畅玩8C生猛来袭夺C位,红米Note5看了只能默默躲角落
  17. POI导出表格Java代码实现
  18. 兄弟连 linux 学习记录
  19. cdoj1638 红藕香残玉簟秋,轻解罗裳,独上兰舟。
  20. mac mini u盘安装系统_用u盘安装win7系统详细步骤

热门文章

  1. iOS 面试题集合~[有答案]
  2. 完美国际真数苹果_让苹果数据线下岗的两款数据线!剪断了还能用!
  3. Fast Affine Template Matching over Galois Field仿射模板匹配数据测试问题
  4. 兆芯国产电脑如何安装Windows+麒麟kylin双系统
  5. 从零开始做一款Unity3D游戏<三>——编写游戏机制
  6. OpenCV联合Image Watch使用中关于RGB和HSV转换相关知识点
  7. 〖Python接口自动化测试实战篇②〗- 摒弃 ‘捉虫师’ 称号 - 你需要重新认识软件测试
  8. 社群裂变工具有哪些?怎么用?微信如何引流客源呢?
  9. 椭圆型变分问题理论及数值方法
  10. 移动机器人轮式里程计