shell的条件测试¶
概述¶
条件测试是 shell 编程中非常重要的一个概念,它允许我们根据某个条件是否满足,来选择执行相应的任务。
条件测试的语法¶
shell 中的条件测试语法如下:
如果条件表达式为真,则返回 0,表示测试成功;如果条件表达式为假,则返回非 0 值,表示测试失败。
条件表达式¶
条件表达式可以是任何可以表示真值或假值的表达式,包括字符串比较、算术比较、文件测试、逻辑运算等。
字符串比较¶
字符串比较可以使用以下操作符:
操作符 | 含义 |
---|---|
-z str | str 为空时,返回真 |
-n str | str 不为空时,返回真 |
str1 = str2 | str1 等于 str2 时,返回真 |
str1 != str2 | str1 不等于 str2 时,返回真 |
算术比较¶
算术比较可以使用以下操作符:
操作符 | 含义 |
---|---|
-eq | 等于 |
-ne | 不等于 |
-gt | 大于 |
-ge | 大于或等于 |
-lt | 小于 |
-le | 小于或等于 |
文件测试¶
文件测试可以使用以下操作符:
操作符 | 含义 |
---|---|
-f file | file 存在且是一个普通文件时,返回真 |
-d file | file 存在且是一个目录时,返回真 |
-e file | file 存在时,返回真 |
-s file | file 存在且大小大于 0 时,返回真 |
-r file | file 存在且可读时,返回真 |
-w file | file 存在且可写时,返回真 |
-x file | file 存在且可执行时,返回真 |
逻辑运算¶
逻辑运算可以使用以下操作符:
操作符 | 含义 |
---|---|
&& | 逻辑与,都为真时,返回真 |
\ | \ |
! | 逻辑非 |
扩展知识¶
- 条件测试的返回值可以被用作变量的值,或者作为判断语句的条件。
- 条件测试可以嵌套使用,以实现更复杂的逻辑判断。
- 条件测试可以与 case 选择语句配合使用,以实现更灵活的条件判断。
实验示例¶
以下是一些使用条件测试的实验示例:
判断变量是否为空
运行该脚本,将输出以下结果:
判断文件是否存在
运行该脚本,将输出以下结果:
判断字符串是否相等
Text Only
#!/bin/bash
str1="hello"
str2="world"
if [ "$str1" == "$str2" ]; then
echo "字符串相等"
else
echo "字符串不相等"
fi
运行该脚本,将输出以下结果:
总结¶
条件测试是 shell 编程中非常重要的一个概念,它可以帮助我们实现复杂的逻辑判断。