shell脚本—条件测试、if语句、case语句
一、条件测试
1.1 test命令
1.1.1说明
测试表达式是否成立,若不成立返回0,否则返回其他数值
1.1.2 格式1
test 条件表达式
1.1.3 格式2
[ 条件表达式 ]
1.1.4 测试选项
测试选项 | 作用 |
---|---|
-b 文件判断该文件是否存在,并且是否为块设备文件 | |
-c 文件 | 判断该文件是否存在,并且是否为字符设备文件 |
-d 文件 | 判断该文件是否存在,并且是否为目录文件 |
-e 文件 | 判断该文件是否存在 |
-f 文件 | 判断该文件是否存在,并且是否为普通文件 |
-L 文件 | 判断该文件是否存在,并且是否为符号链接文件 |
-p 文件 | 判断该文件是否存在,并且是否为管道文件 |
-s 文件 | 判断该文件是否存在,并且是否为非空 |
-S 文件 | 判断该文件是否存在,并且是否为套接字文件 |
1.2 文件测试
1.2.1 格式
[ 操作符 文件或目录 ]
1.2.2 常用操作符
常用操作符 | 说明 |
---|---|
-d | 测试是否为目录(Directory) |
-e | 测试目录或文件是否存在(Exist) |
-f | 测试是否为文件(File) |
-r | 测试当前用户是否有权限读取(Read) |
-w | 测试当前用户是否有权限写入(Write) |
-x | 测试当前用户是否有权限执行(eXcute) |
1.3 整数值比较
1.3.1 格式
[ 整数1 操作符 整数2 ]
1.3.2 常用操作符
常用操作符 | 说明 |
---|---|
-eq | 等于(Equal) |
-ne | 不等于(Not Equal) |
-lt | 小于(Lesser Than) |
-gt | 大于(Greater Than) |
-le | 小于或等于(Lesser or Equal) |
-ge | 大于或等于(Greater or Equal) |
1.4 字符串比较
1.4.1 格式1
[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
1.4.2 格式2
[ -z 字符串 ]
1.4.3 常用操作串
常用操作串 | 说明 |
---|---|
= | 字符串内容相同 |
!= | 字符串内容不同,!号表示相反的意思 |
-z | 字符串内容为空 |
-n | 检查是否有字符串存在 |
1.5 逻辑测试
1.5.1 格式1
[ 表达式1 ] 操作符 [ 表达式2 ]
1.5.2 格式2
命令1 操作符 命令2
1.5.3 常用操作符
常用操作符 | 说明 |
---|---|
-a或&& | 逻辑与,而且的意思 |
-o或▕▕ | 逻辑或,或者的意思 |
! | 逻辑否 |
二、if语句
2.1 if 单分支语句
2.1.1 语法结构
if 条件测试操作
then 命令序列
fi
2.1.2 结构图
2.1.3 实例:
2.2 if 双分支语句
2.1.1 语法格式
if 条件测试操作
then
命令序列1
else
命令序列2
fi
2.1.2 结构图
2.1.3 实例
2.3 if 多分支语句
2.3.1 语法结构
if 条件测试操作1
then
命令序列1
elif 条件测试操作2
then
命令序列2
else
命令序列3
fi
2.3.2 结构图
2.3.3 实例
三、case语句
3.1 语法结构
case $变量 in
值1)
命令序列1 ;;
值2)
命令序列2 ;;
*)
默认命令序列3 ;;
esac