文章目录

#条件判断的格式

[ exp ]

[[ exp ]]

test exp

注意: exp 与 “[”、"]"括号之间必须要有空格,否则会报语法错误;

  1. [ exp ] 与 [[ exp ]]的区别,本文仅讨论[ exp ],而在[[ exp ]]模式下,额外支持指令,但是同样都需要空格;
  2. &&、|| 分别作为逻辑与、逻辑或的运算
  3. [[ 1 == 1 ]] 结果为真

#条件判断的类型

条件判断的类型有三种:整数判断,字符判断,文件判断

条件逻辑表达式:

-a : and 逻辑与

-o : or 逻辑或

! : nor 逻辑非

##整数判断

-eq #equal 相等

-ne #not equal 不相等

-gt #greater than 大于

-lt #less than 小于

-ge #greater or equal 大于或等于

-le #less or equal 小于或等于

##字符判断

-z #zero 当前字符串是否为空

-n #not zero 当前字符串是否不为空

== 两端字符串是否相等

!= 两端字符串是否不相等

> 长度是否大于

< 长度是否小于

注意:“< ”与 “> ”做字符串比较的时候,在[ exp ] 情况下需要需要输入 “<” 或者 “>” 作为转义,或者使用 [[ > exp ]] 模式可以直接使用“< ”与 “> ”作为判断符号使用。


STR1="HELLO"
STR2="HELL" if [[ $STR1 > $STR2 ]];then
echo "$STR1 > $STR2"
fi if [ $STR1 \> $STR2 ];then
echo "$STR1 > $STR2"
fi

##文件判断

-e #exit 判断文件是否存在

-f #if file 判断是否是文件

-d #dir 判断是否是路径

-r 判断文件是否可读

-w 判断文件是否可写

-x 判断文件是否可执行

-L 判断文件是否为符号链接

#!/bin/bash
MFILE=123.sh if [ -f $MFILE -a -x $MFILE ];then
echo "$MFILE is ok"
fi
if [[ -f $MFILE && -x $MFILE ]];then
echo "$MFILE is ok"
fi

##条件判断基本结构

if conditions;then
statement1
.......
fi if conditions;then
statement1
else
statement2
fi if condition1; then
statement1
elif condition2 ; then
statement2
fi

#总结

条件判断主要有三种格式 test exp,[ exp ],[[ exp ]],其中前二者类似,本文主要讲了 [ exp ];exp 作为条件判断的表达式主要分为三类:

  • 数值比较的判断;
  • 文件类型的判断,包括文件类型,路径类型,读写执行属性等;
  • 字符串的比较;
  • exp 中比较重要的是运算符,通用运算符是逻辑运算符包括 -a,-o,!,而对于特定类型的判断,每一种判断类型的运算符都是相对独立使用,无法相互兼容。

最新文章

  1. java安全管理器SecurityManager入门
  2. PAT1007
  3. [Linked List]Reorder List
  4. Swift - 单例模式的实现
  5. FTP: Configuring server users..
  6. 深入理解setTimeout的作用域
  7. 初学VUE2.0
  8. 7.spark共享变量
  9. c语言的第三次---单程循环结构
  10. Leetcode_88_Merge Sorted Array
  11. 上海上传数据重复-sftp端口关闭
  12. Python——threading模块(线程)
  13. elasticsearch head添加索引并设置mapping
  14. python拼接变量、字符串的3种方法
  15. Js_特效II
  16. iOS开发-UIButton浅谈
  17. MPI Hello World
  18. 图片虚拟目录--即图片保存在window硬盘上面
  19. 如何搭建本地svn服务器和搭建本地Git服务器
  20. [hihocoder 1050]求树的最长链

热门文章

  1. H - Tempter of the Bone DFS
  2. Java的自动装箱
  3. 关于go的入门书籍——go自学的序
  4. Python中实现按顺序遍历字典
  5. MySql -- 数据结构
  6. 定期清理nohup.out
  7. qt 怎么让程序自带字体,就是说在操作系统上没有的字体
  8. 终止过久没有返回的 Windows API 函数 ---- “CancelSynchronousIo”
  9. Scala教程之:可变和不变集合
  10. iOS架构入门 - MVC模式实例演示