作者:菲拉慕格_516 | 来源:互联网 | 2023-07-14 20:10
Shell编程之条件语句:if、case语句一、条件测试1)test命令测试2)整数值比较3)文件测试4)字符串比较5)逻辑测试二、if语句1)单分支结构2)双分支结构3)多分支语
Shell编程之条件语句:if、case语句 一、条件测试
1)test命令测试
2)整数值比较
3)文件测试
4)字符串比较
5)逻辑测试
二、if语句
1)单分支结构
2)双分支结构
3)多分支语句
三、case语句
一、条件测试
Shell环境根据命令执行后的返回状态值($?) 来判断是否执行成功。
当返回值为0(真true)时表示成功,返回值为非0值(假false) 时表示失败或异常。
test命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立($?返回值为0表示条件成立)。
1)test命令测试
测试表达式是否成立,若成立返回值为0,非0值表示条件不成立。
格式1:test 条件表达式
格式2:【 条件表达式 】 #方括号【“或”】与条件表达式之间需要至少一个空格进行分割
例:
2)整数值比较
常用的测试操作符
-eq |
等于(Equal) |
-ne |
不等于(Not Equal) |
-gt |
大于(Greater Than) |
-lt |
小于(Lesser Than) |
-le |
小于或等于(Lesser or Equal) |
-ge |
大于或等于(Greater or Equal) |
例:
3)文件测试
常用的测试操作符
-d |
测试是否为目录(Directory) |
-e |
测试目录或文件是否存在(Exist) |
-f |
测试是否为文件(File) |
-r |
测试当前用户是否有权限读取(Read) |
-W |
测试当前用户是否有权限写入(Write) |
-X |
测试当前用户是否有权限执行(eXcute) |
-L |
测试是否为符号链接 |
例:
-f
-d
-e
-x
4)字符串比较
格式1
【 字符串1 = 字符串2 】
【 字符串1!= 字符串2 】
格式2
【 -z 字符串 】是否空值
【 -n 字符串 】#检查是否有字符串存在
常用的测试操作符
= |
字符串内容相同 |
! |
字符串内容不同,!号表示相反的意思 |
-z |
字符串内容为空 |
-n |
字符串是否存在 |
例:
5)逻辑测试
格式1
【 表达式1 】 操作符 【 表达式2 】
格式2
命令1 操作符 命令2
常用的测试操作符
-a或&& |
逻辑与,"而且"的意思,前后条件需都成立 |
-o或|| |
逻辑或,"或者"的意思,只需前后条件中一个成立 |
! |
逻辑否 |
&&、||操作符能够正常存在于【【】】条件判断结构中,但是如果出现在【】结构中的话,会报错。
例:
||
二、if语句1)单分支结构
例:
验证
2)双分支结构
if 条件测试操作
then 命令序列1
else 命令序列2
fi
例:
验证
3)多分支语句
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else
命令序列3
fi
例:
验证
三、case语句语法结构
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默认命令序列
esac
例:
验证