linux脚本中的gt,shell中’-gt’与’’的区别
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’与’’的区别相关推荐
- linux脚本批量加注释,shell中如何批量注释和取消注释
shell中如何批量注释和取消注释,注释,行号,模式,批量,命令 shell中如何批量注释和取消注释 易采站长站,站长之家为您整理了shell中如何批量注释和取消注释的相关内容. #!/bin/bas ...
- linux脚本判断变量存在,shell中关于变量是否存在的问题
[TOC] ## fish shell判断某个变量是否存在 fish shell 判断变量是否存在直接使用 `test 变量`就可以,然后我们使用`and`和`or`实现if..else..的逻辑.如 ...
- linux脚本中的exit,Shell中exit和return的区别讲解
1.exit命令 exit命令是Shell内建命令,用于退出当前Shell进程.使用格式如下: exit [] 可以指定退出状态n,n的取值范围是0-255,一般情况下,0表示正常退出,非零表示异常退 ...
- linux去除字符串的空格符,Shell中去除字符串前后空格的方法
经常碰到的场景,需要去除字符串中的前后的空格.在Shell中不像其他语言有strip()来处理,不过也是可以使用诸如awk等命令来处理. 下面是一个简单示例: [root@localhost ~]# ...
- linux sed 正则提取字符串,Shell中使用grep、sed正则提取和替换字符串
Linux中使用grep正则提取字符串 echo office365 | grep -P '\d+' -o find . -name "*.txt" | xargs grep -P ...
- Linux新建用户可以在shell中切换到该用户也能登录到图形桌面
解决使用useradd testname,passwd testname命令确实创建了一个用户,可以在shell中切换到该用户.但不能登录到图形桌面的问题! 通过下面方法可以在Linux中新建用户,并 ...
- Shell脚本(函数,shell中的数组)
函数 函数就是把一段代码整理到一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式:function f_name(){ command } 函数必须放在最前面 ...
- linux时间与日期函数,Shell中关于时间和日期的函数总结
shell下获取系统时间的方法直接调用系统变量 获取今天时期:`date +%Y%m%d` 或 `date +%F` 或 $(date +%y%m%d) 获取昨天时期:`date -d yesterd ...
- linux ftp显示进度条,Shell中复制大文件显示进度
"世间最痛苦的事莫过于等待..." 在Shell下进行大文件的复制时,常常要耗很长世间,这是一个相当乏味的过程,在GUI程序中常常会显示进度条或者完成百分比,但在Shell中如何来 ...
最新文章
- 宁彦吉:如何进行作业的评审?
- 2022年值得关注的8个人工智能趋势
- PXE网络无人值守装机
- IDEA - 解决 Maven 初始化配置 web.xml 为 2.3 的问题
- 对require和import的认识
- 【NLP实战】基于ALBERT的文本相似度计算
- 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 3.)(python/c/c++版)(笔记)
- python 压缩 解压
- sklearn 数据预处理1: StandardScaler
- Linux搭建SVN服务器
- cmd /c和cmd /k 以及CMD命令
- QT制作一个串口调试助手出现乱码问题
- 基于Matlab系统的HVDC系统
- 实现MySQL读写分离---maxscale代理服务器配置(详解)
- mysql 父子关系查询,父子关系-SQL查询
- 荣耀畅玩8C生猛来袭夺C位,红米Note5看了只能默默躲角落
- POI导出表格Java代码实现
- 兄弟连 linux 学习记录
- cdoj1638 红藕香残玉簟秋,轻解罗裳,独上兰舟。
- mac mini u盘安装系统_用u盘安装win7系统详细步骤
热门文章
- iOS 面试题集合~[有答案]
- 完美国际真数苹果_让苹果数据线下岗的两款数据线!剪断了还能用!
- Fast Affine Template Matching over Galois Field仿射模板匹配数据测试问题
- 兆芯国产电脑如何安装Windows+麒麟kylin双系统
- 从零开始做一款Unity3D游戏<三>——编写游戏机制
- OpenCV联合Image Watch使用中关于RGB和HSV转换相关知识点
- 〖Python接口自动化测试实战篇②〗- 摒弃 ‘捉虫师’ 称号 - 你需要重新认识软件测试
- 社群裂变工具有哪些?怎么用?微信如何引流客源呢?
- 椭圆型变分问题理论及数值方法
- 移动机器人轮式里程计