设为首页 收藏本站
查看: 1046|回复: 0

shell脚本编程之条件测试——test

[复制链接]

尚未签到

发表于 2018-8-26 13:07:14 | 显示全部楼层 |阅读模式
  test测试命令有三类测试表达式,第一类是进行数值的比较,第二类是进行字符串的比较,第三类是进行文件的测试,比如测试一个文件是否存在等。
  1.数值测试,需要两个操作数进行比较
  -eq:测试两个数据是否相等,相等为真,不等为假
  -ne:被测试的两个数值是否不相等,不等为真,相等为假;
  -lt:被测试的两个数值,左边的是否小于右边的,小于为真,大于为假;
  -gt:被测试的两个数值,左边的是否大于右边的,大于为真,小于为假;
  -le:被测试的两个数值,左边的是否小于等于右边的;
  总结一下就是:eq相等,ne不相等,gt大于,lt小于,ge大于等于,le 小于等于,not非,mod求模
  ~]$ test 3 -eq 4  
  ~]$ echo $?
  
   1
  ~]$ test 3 -ne 4  
  ~]$ echo $?
  
   0
  ~]$ test 3 -gt 4  
  ~]$ echo $?
  
   1
  ~]$ test 3 -lt 4  
  ~]$ echo $?
  
   0
  在写脚本的时候我们会需要进行条件判断,所以我们需要用到test命令,这种命令在脚本里时只需要将测试的内容写在中括号里头就可以了,比如以下两种方法是相同的:
~]$ [ 2 -eq 2 ]  
~]$ echo $?
  
0
~]$ test 2 -eq 2  
~]$ echo $?
  
0
  注意:这类命令一般没有执行结果,只有执行状态返回值,所以当我们要查看比对就过的时候需要使用echo命令将执行的结果显示出来。
  这个测试命令可以配合if等命令进行条件判断,比如可以用vim写一个脚本:
#!/bin/bash  
if [ 1 -eq 1 ] ; then
  
        echo "相同"
  
else echo "不相同"
  
fi
~]$ vim b1  
~]$ bash b1
  
相同
  然后改一个数,就会输出不相同:
#!/bin/bash  
if [ 1 -eq 2 ] ; then
  
        echo "相同"
  
else echo "不相同"
  
fi
~]$ vim b1  
~]$ bash b1
  
不相同
  像其他测试的条件也可以写成这种脚本,就不一一列举了。
  2.字符串测试:
  双目操作符:
  ==|=:被测试的两个字符串是否相等,相同为真,不同为假;
  比如:
~]$ [ abc == abc ]  
~]$ echo $?
  
0
~]$ [ abc == abd ]  
~]$ echo $?
  
1
  !=:被测试的两个字符是否不相同,不同为真,相同为假;
  这个符号的功能与==相反,比如
~]$ [ abc != abc ]  
~]$ echo $?
  
1
~]$ [ abc != abd ]  
~]$ echo $?
  
0
  >:被测试的两个字符串在ascll码表中对应的二进制数据,左边是否大于右边,大于为真,小于为假;
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-556863-1-1.html 上篇帖子: Shell正则表达式之grep、sed、awk实操笔记 下篇帖子: zabbix 发送邮件脚本(python shell)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表