1 比较运算符

(1) 数学比较运算

-eq 等于
-gt 大于
-lt 小于
-ge 大于或等于
-le 小于或等于
-ne 不等于

(2) 字符串比较

== 等于
!= 不等于
-n 检查字符串的长度是否大于0
-z 检查字符串的长度是否为0

(3) 文件比较与检查

-d 检查文件是否存在, 且为目录
-f 检查文件是否存在, 且为文件
-e 检查目录或文件是否存在
-r 检查文件是否存在且可读
-s 检查文件是否存在且不为空
-w 检查文件是否存在且可写
-x 检查文件是否存在且可执行
-O 检查文件是否存在且被当前用户拥有
-G 检查文件是否存在且默认组为当前用户组
file1 -nt file2 检查file1是否比file2新
file1 -ot file2 检查file1是否比file2旧

(4) 逻辑运算

&& 逻辑与
|| 逻辑或
! 逻辑非

2 if 语法

  1. if [ condition ]
  2. then
  3. commands1
  4. elif
  5. commands2
  6. else
  7. commands3
  8. fi

image.pngimage.png
注意: then一定要写在下面
image.png

3 if 高级应用

条件符号

  • []: Test和[]中可用的比较运算符只有=和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq,-gt这种形式
  • (()): 它可以在条件中植入数学表达式, 通配符

image.png
image.png