条件测试操作及if、case语句
一、条件测试操作
1. test命令
- 测试表达式是否成立,若成立返回0,否则返回其他数值
格式一:test 条件表达式
格式二:[ 条件表达式 ]
2. 文件测试
[ 操作符 文件或目录 ]
常用的测试操作符
操作符 | 作用 |
---|---|
-d | 测试是否为目录(Directory) |
-e | 测试目录或文件是否存在(Exist) |
-f | 测试是否为文件(File) |
-r | 测试当前用户是否有权限读取(Read) |
-w | 测试当前用户是否有权限写入(Write) |
-x | 测试当前用户是否有权限执行(eXcute) |
3. 整数值比较
[ 整数1 操作符 整数2]
常用的测试操作符
操作符 | 说明 |
---|---|
-eq | 等于(Equal) |
-ne | 不等于(Not Equal) |
-lt | 小于(Leser Than) |
-gt | 大于(Greater Than) |
-le | 小于或等于(Lesser or Equal) |
-ge | 大于或等于(Greater or Equal) |
4. 字符串比较
- 格式一:[ 字符串 = 字符串 ] 或 [ 字符串 != 字符串 ]
- 格式二:[ -z 字符串 ] 或 [ -n 字符串 ]
常用的测试操作符
操作符 | 说明 |
---|---|
= | 字符串内容相同 |
! | =字符串内容不同 |
-z | 字符串内容为空 |
-n | 是否有字符串 |
5. 逻辑测试
格式一:[ 表达式1 ] 操作符 [ 表达式2 ]
格式二:命令1 操作符 命令2
常用的逻辑测试符
操作符 | 说明 |
---|---|
-a或&& | 逻辑与,而且的意思,前后条件需都成立 |
-o或▕▕ | 逻辑或,或者的意思,只需其中一个条件成立 |
! | 逻辑否 |
注:-a 与 -o 用于格式二,&& 与▕▕ 用于格式一,&& 与▕▕ 可用于[[ ]]结构中,以上条件都是输出第一个符合条件的结果
二、if语句的结构
1. 单分支结构
三种表示方法
if [ 5 -gt 3 ]
then
echo "yes"
fi
if [ 5 -gt 3 ]; then echo “yes”; fi
[ 5 -gt 3 ] && echo "yes"
2. 双分支结构
格式:
if
[ 条件表达式 ]
then
echo “命令序列”
else
echo “命令序列”
fi
vim port.sh
注:&> /dev/null :表示不输出这项内容
则执行脚本程序的时候,不会显示这条命令的输出结果
思路:先执行命令,之后进入 if 模式,若 [$?=0],echo “命令序列”,else,echo “命令序列”,最后记得用“fi”收尾。
3. 多分枝结构
格式:
if [ 条件测试操作1 ]
then echo [ 命令序列1 ]
elif [ 条件测试操作2 ]
then echo [ 命令序列2 ]
else
echo 命令序列3
fi
vim score.sh
执行脚本程序:
三、case语句结构
case多分枝结构
格式:
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
…
*)
默认命令序列
esac
方法一
vim score.sh
执行脚本程序:
方法二
思路:引入固定变量,用以表示事件不同状态,依据不同状态分多个case,根据需要进行执行相应的命令序列,或直接将事件中变量划分多个case。