版权声明: 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://snailwarrior.blog.51cto.com/680306/154788
【小蜗牛五二无聊之作
网络上能找到的相关资料太多了,也太繁杂,但有些人还整理得不错,下面根据自己的偏好再梳理一下,有些是自己对照着man手册翻译的,下面的例子都是自己编造自己测试OK,都是比较实用的东西,方便自己日后参考。
1、算术运算比较运算符(bash自身不能比较浮点数)
 
-eq 等于          [ $num1 -eq $num2 ]
-ne 不等于       [ 100   -ne $num1 ]
-lt 小于           [ 100   -lt `expr $num1 + $num2` ]
-le 小于或等于   [ 100   -le `expr $num1 /* $num2` ]
-gt 大于           [ 100   -gt `expr $num1 / $num2` ]
-ge 大于或等于   [ 100   -ge `expr $num1 % $num2` ]
2、字符串比较运算符   
-z string  如果 string 长度为零,则为真  [ -z "`ps aux | grep mysql`" ]
-n string  如果 string 长度非零,则为真  [ -n "$string" ]
              【注意】 $string 一定要放在双引号里面 "$string",否则使用 -n -z 的结果都为真!
string1 != string2  如果 string1 与 string2 不同,则为真  [ "$str1" != "Snail" ]
string1 == string2  如果 string1 与 string2 相同,则为真  [ "$str1" == "$str2" ]
                    (上面用一个 = 也可以,在严格的 POSIX 兼容下使用)
string1 < string2   如果 string1 按字典顺序比较小于 string2,则为真
string1 > string2   如果 string1 按字典顺序比较大于 string2,则为真
3、文件比较运算符 
 
-a filename  如果 filename 存在,则为真                   [ -e $HOME/.bashrc ]
-e filename  (同上)
-b filename  如果 filename 存在,并且是块文件,则为真     [ -e /dev/loop0 ]
-c filename  如果 filename 存在,并且是字符文件,则为真   [ -e /dev/ttyS0 ]
-d filename  如果 filename 存在,并且为目录,则为真       [ -d /home/snail ]
-f filename  如果 filename 存在,并且为常规文件,则为真   [ -f /dev/ttyS0 ]
-g filename  如果 filename 存在,并且为set-group-id,为真 [ -f $HOME/ak47 ]
-h filename  如果 filename 存在,并且为符号连接,则为真   [ -h /bin/vi ]
-L filename  (同上)
-k filename  如果 filename 存在,并且设置了sticky位,为真 [ -k /bin/ping ]
-p filename  如果 filename 存在,并且为有名管道(FIFO),真 [ -p /tmp/pipe ]
-r filename  如果 filename 存在,并且可读,则为真         [ -r /etc/passwd ]
-s filename  如果 filename 存在,并且大小不为零,为真     [ -s ./none-zero ]
-u filename  如果 filename 存在,并且为set-user-id,为真  [ -f $HOME/ak47 ]       
-w filename  如果 filename 存在,并且可写,则为真         [ -w /var/log/mail ]
-x filename  如果 filename 存在,并且可执行,则为真       [ -x ./start.sh ]
下面这些不常用的:
-t fd        如果文件描述符被打开并指向一个终端,则为真   [ -t /proc/1/fd/10 ]

              【提示】 在 /proc/进程号/fd 下可以找到文件描述符:)
-O filename  如果 filename 存在,并且被有效用户ID所拥有,则为真
-G filename  如果 filename 存在,并且被有效组ID所拥有,则为真
-S filename  如果 filename 存在,并且为一个socket,则为真 [ -S /tmp/mysql.sock ]
-N filename  如果 filename 存在,并且在上次读取后被修改过,则为真
-o optname   如果 shell 选项 optname 被开启,则为真

              【提示】 使用 set -o 来查看

file1 -nt file2  如果 file1 比 file2 新,或者 file1 存在 file2 不存在,则为真
file1 -ot file2  如果 file1 比 file2 旧,或者 file2 存在 file1 不存在,则为真
file1 -ef file2  如果 file1 和 file2 都指向同样的设备(device)和索引节点号(inode numbers),则为真

              【提示】 查看文件的索引节点可以用 ls -i 选项

------------------------------------------------------------------------------------------
赵小蜗牛
QQ: 755721501
E-mail: snailwarrior@qq.com
在不断奉献中谋求生存发展、打造自己的优秀品质,用人性最本质最动人的一面“营销”自己!

本文出自 “小蜗牛技术之家 ” 博客,请务必保留此出处http://snailwarrior.blog.51cto.com/680306/154788

BASH 比较运算小结[转载 小蜗牛五二]相关推荐

  1. c语言 10进制 按位与,位运算小结(按位与、按位或、按位异或、取反、左移、右移)...

    原标题:位运算小结(按位与.按位或.按位异或.取反.左移.右移) 位运算不管是在Java语言,还是在C语言中,或者其他语言,都是经常会用到的,所以本文也就不固定以某种语言来举例子了,原始点就从0.1开 ...

  2. 位运算小结(按位与、按位或、按位异或、取反、左移、右移)

    位运算小结(按位与.按位或.按位异或.取反.左移.右移) 位运算主要包括按位与(&).按位或(|).按位异或(^).取反(~).左移(<<).右移(>>)这几种,其中除 ...

  3. [Android Studio 权威教程]Windows下安装Android Studio

    从AS 0.5版本号開始使用.也是AS的推行者,在ApkBus公布的第一篇Android Studio Perview 2 获得了50K的浏览,1800多条回复下载. 在我的[Android Stud ...

  4. [沪江日语电台]ACG杂货铺02-乱唱地带

    [沪江日语电台]ACG杂货铺02-乱唱地带 策划录音:蛋蛋老师.小安安 后期女王:小安安 客串嘉宾:迟墨 绘图:蛋蛋老师 ACG=anime+comics+game=动画+漫画+游戏 ★欢迎大家加入恶 ...

  5. 念白白 php,戏曲课堂︱【第五二讲】戏曲的念白(散白与诗白)

    原标题:戏曲课堂︱[第五二讲]戏曲的念白(散白与诗白) 本周戏曲小课堂为大家介绍戏曲中所使用的念白.在戏曲表演中,人物的语言大多是有韵律.节奏的,与话剧中接近日常生活的语言风格明显不同.大家看戏的过程 ...

  6. 1.02的4次方计算机怎么按,【一〇五二 | 知识】1.02的365次方是1377.4

    原标题:[一〇五二 | 知识]1.02的365次方是1377.4 <蚂蚁搬家> Every little makes a mickle. 聚沙成塔,集腋成裘 切莫小看"蚂蚁搬家& ...

  7. [转载]梯度下降小结

    转自:https://www.cnblogs.com/pinard/p/5970503.html 在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采 ...

  8. [转载]Java-集合框架完全解析

    在简书上看到一篇介绍Java集合框架的文章,写得挺详细的,http://www.jianshu.com/p/63e76826e852这是原文地址. 数据结构是以某种形式将数据组织在一起的集合,它不仅存 ...

  9. 加盟代理的骗局[转载]

    在当今的中国,各形各色的骗局可以说是五花八门,数不胜数!抛开一些小的街头骗局,大型的骗术就有传销骗局,短信中奖骗局,信用卡中奖骗局,连锁加盟骗局等等! 如果我要是问你这些骗局中哪种最可怕,最暴力,最可 ...

最新文章

  1. golang 安装一个项目下的所有依赖
  2. python飞机大战源代码-python版飞机大战代码分享
  3. 添加用户信息的方法java_添加用户的流程分析
  4. 模式7--ThreadPerMessage
  5. 上大专是学计算机还是会计,上三本还是上专科 大专学什么专业好
  6. JS获取html页面上选中内容
  7. 台湾印象之一:金马奖之夜
  8. 一个人成为废材的9大原因
  9. 【软件项目管理】滨江学院 李振宏 软件项目管理 试卷考点知识点整理
  10. linux查看磁盘io最多的进程,Linux 查看磁盘IO并找出占用IO读写很高的进程,磁盘占用很高...
  11. 基于python对doi号通过sci-hub进行pubmed中的文献下载
  12. 微信小程序|Springboot+Node+Vue实现学科竞赛管理系统
  13. origin2021软件
  14. 2021-06-02
  15. drupal html5,基于Drupal 7HTML5布局模板二次开发.doc
  16. 实习生如何在平淡无奇的工作中凸显自我价值?
  17. 爆笑的虫子机器人_《爆笑虫子Larva》全集目录
  18. 新建Python项目
  19. 错误解决:IllegalArgumentException occurred calling getter of *
  20. javaweb超市管理系统--用户管理

热门文章

  1. 【计算机网络】物理层传输介质
  2. 【Java】Fibonacci数列编程实现
  3. 【Python】Python中打开文件那些事
  4. 黑客专用Linux发行版Kali Linux发布滚动更新版2016.1
  5. 应急指南|新一轮勒索病毒来袭,小白用户看这里
  6. Java练习:tips.Print
  7. 解决gdal集成libkml的链接错误
  8. 同方挑战惠普 大打“惠民”牌
  9. 只靠可视化大屏,做不了数字化,数据总监总结3点,你做到了几个
  10. 怎样做高质量的财务分析?