一、条件测试
1. 条件测试概念
先设定一个条件,判断设定是否满足(真或假,True或False),然后根据判断条件来执行一段特定的代码。
如果判断为真,则状态码$?值为0;如果为假,则状态码$?值非0。
2. 条件测试的常见格式
2.1 文件条件测试
test [操作符] 文件
# 或者
[ 操作符 文件 ]
- 使用第二种方法要注意空格。
常见的操作符:
操作符 | 功能 |
---|---|
-e | 判断文件(目录)是否存在 |
-d | 判断是否为目录 |
-f | 判断是否为普通文件 |
-r | 判断当前用户是否有可读权限 |
-w | 判断当前用户是否有可写权限 |
-x | 判断当前用户是否有可执行权限 |
2.2 整数条件测试
test 整数1 操作符 整数2
# 或者
[ 整数1 操作符 整数2 ]
常见的操作符:
操作符 | 功能 |
---|---|
-eq、== | 等于 |
-ne、!= | 不等于 |
-gt、> | 大于 |
-lt、< | 小于 |
-ge、>= | 大于或等于 |
-le、<= | 小于或等于 |
- 如果使用>、>=、<、<=等符号,需要使用双小括号(()),双中括号[[]]只能适用于>和<。
2.3 字符串条件测试
[ 字符串1 操作符 字符串2 ]
常见的操作符:
操作符 | 功能 |
---|---|
== | 判断内容是否相同 |
!= | 判断内容是否不同 |
2.4 逻辑条件测试
[ 表达式1 ] 操作符 [ 表达式2 ]
常见的操作符:
操作符 | 功能 |
---|---|
-a、&& | 逻辑与,表示而且,全为真才为真 |
-o、|| | 逻辑或,表示或,一个为真就为真 |
! | 逻辑否 |
注意,两种操作符的写法不同。
[ 表达式1 -a 表达式2 ]
[ 表达式1 ] && [ 表达式2 ]
# 或者
[[ 表达式1 && 表达式2 ]]
二、IF语句
1. IF单分支语句
if 判断条件
then
# 条件成立执行的代码
fi
2. IF双分支语句
if 判断条件
then
# 条件成立执行的代码
else
# 条件不成立执行的代码
fi
3. IF多分支语句
if 判断条件1
then
# 条件1成立执行的代码
elif 判断条件2
then
# 条件2成立执行的代码
else
# 条件1和条件2都不成立执行的代码
fi
三、CASE语句
case 变量 in
模式1)
符合模式1执行的代码
;;
模式2)
符合模式2执行的代码
;;
*)
都不符合执行的代码
esac