shell编程之条件语句与case语句
一、条件测试
1.1 测试的方法
- test命令测试
- [ ]测试(注意前后需要有空格)
- [[ ]](是[ ]的加强版),测试支持通配符和正则表达式
1.2 测试的选项
选项 | 含义 |
-e | 测试文件或目录是否存在 |
-d | 测试是否为文件夹 |
-f | 测试是否为普通文件 |
-r | 判断当前用户是否有读权限 |
-w | 判断当前用户是否有写权限 |
-x | 判断当前用户是否有执行权限 |
-L | 测试是否为软连接文件 |
1.3 整数比较
格式:[ 整数1 操作符 整数2 ]
操作符 | 含义 |
-eq | 等于 |
-ne | 不等于 |
-gt | 大于 |
-lt | 小于 |
-le | 大于等于 |
-ge | 小于等于 |
1.4 字符串比较
格式:[ "字符串1" 操作符 "字符串2" ]
-z:检查字符串是否为空
-n:检查字符串是否存在
操作符 | 含义 |
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
1.5 逻辑测试
格式1:[ 表达式1 ] 操作符 [ 表达式2 ] 格式2:[命令1 操作符(只能为字母) 命令2]
常见条件
- 逻辑与:-a或&&
- 逻辑或:-o或||
- 逻辑否:!
[ 表达式1 ] && [ 表达式2 ] 等同于 [ 表达式1 -a 表达式2 ] 等同于 [[ 表达式1 && 表达式2 ]] [ 表达式1 ] || [ 表达式2 ] 等同于 [ 表达式1 -o 表达式2 ] 等同于 [[ 表达式1 || 表达式2 ]]
二、if语句
2.1 if单分支结构
if [ 表达式 ] then ...... fi
2.2 if双分支结构
if [ 表达式 ] then ...... fi
2.2 if双分支结构
if [ 表达式 ] then 命令序列1 else 命令序列2 fi
2.3 if多分支结构
if [ 表达式 ] then 命令序列1 elif 命令序列2 . . . else 命令序列n fi
三、case语句
case 变量 in 模式1) .... ;; 模式2) .... ;; *) .... ;; esca