前文介绍了if语句,那么接下来咱们好好说一下里边的条件判断。首先,条件判断大致分为下面几类:
- 文件、文件夹判断
- 字符串判断
- 数值判断
- 复杂逻辑判断
咱们闲言少叙,直接上表格。
文件、文件夹判断
比较 | 描述 | 适用范围 |
---|---|---|
-d file | 检查file是否存在并是一个目录 | 文件夹 |
-e file | 检查file是否存在 | 文件、文件夹 |
-f file | 检查file是否存在并是一个文件 | 文件 |
-r file | 检查file是否存在并可读 | 文件、文件夹 |
-s file | 检查file是否存在并非空 | 文件、文件夹 |
-w file | 检查file是否存在并可写 | 文件、文件夹 |
-x file | 检查file是否存在并可执行 | 文件、文件夹 |
-O file | 检查file是否存在并属当前用户所有 | 文件、文件夹 |
-G file | 检查file是否存在并且默认组与当前用户相同 | 文件、文件夹 |
file1 -nt file2 | 检查file1是否比file2新 | 文件、文件夹 |
file1 -ot file2 | 检查file1是否比file2旧 | 文件、文件夹 |
字符串判断
比较 | 描述 |
---|---|
str1 = str2 | 检查str1是否和str2相同 |
str1 != str2 | 检查str1是否和str2不同 |
str1 < str2 | 检查str1是否比str2小 (长度) |
str1 > str2 | 检查str1是否比str2大 (长度) |
-n str1 | 检查str1的长度是否非0 |
-z str1 | 检查str1的长度是否为0 |
数值判断
比较 | 描述 |
---|---|
n1 -eq n2 | 检查n1是否与n2相等 |
n1 -ge n2 | 检查n1是否大于或等于n2 |
n1 -gt n2 | 检查n1是否大于n2 |
n1 -le n2 | 检查n1是否小于或等于n2 |
n1 -lt n2 | 检查n1是否小于n2 |
n1 -ne n2 | 检查n1是否不等于n2 |
复杂逻辑判断
运算符 | 含义 |
---|---|
-a | 与 |
-0 | 或 |
! | 非 |
此处参考书籍《Linux命令行与shell脚本编程大全第3版》