shell脚本之条件语句(条件测试,if,case)
条件测试
文件测试test命令
测试表达式是否成立,成立返回0,非0为不成立
一:test [选项] 条件表达式
二:[ 选项 条件表达式 ]
常用选项
-d | 测试文件是否为目录 |
-f | 测试文件是否为普通文件 |
-e | 测试目录或文件是否存在(建议用-e -a不准确) |
-r | 测试当前用户是否有读取权限 |
-w | 测试当前用户是否有写入权限 |
-x | 测试当前用户是否有执行权限 |
-L |
测试是否为符号链接 |
整数测试
整数值比较
一:[ 整数变量1 操作符 整数变量2 ]
二:test 整数变量1 操作符 整数变量2
操作符:
-eq | 等于 |
-ne | 不等于 |
-gt | 大于 |
-lt | 小于 |
-le | 小于或等于 |
-ge | 大于或等于 |
整数测试
整数值比较
一:[ 整数变量1 操作符 整数变量2 ]
二:test 整数变量1 操作符 整数变量2
操作符:
使用-z或-n测试变量时,变量需要加引号,避免有歧义而导致判断结果有误
逻辑测试
逻辑测试用于连接多个测试条件,并返回整个表达式的值。 逻辑测试主要有"逻辑与","逻辑或","逻辑否"三种
一:[ 表达式1 ] 操作符 [ 表达式2 ]
二:命令1 操作符 命令2
操作符:
-a或&& 逻辑与,而且
-o或|| 逻辑或,或者
[表达式1] && [表达式2] 等同于 [表达式1 -a 表达式2] 等同于 [[表达式1 && 表达式2]]
三元运算符
[ 条件表达式 ] && 值1 || 值2
|| 运算符的前面表达执行成功后将不会再运行后面的表达式

if语句
单分支结构

语法:
if [ 条件测试表达式 ] #如果 [ 为真 ]
then #那么
命令 #执行该命令
fi #退出
双分支结构
语法:
if [ 条件测试表达式 ] #如果 [ 为真 ]
then #那么 命令1 #执行该命令
else 否则
命令2 #执行命令2
fi #退出
多分支结构
if [ 条件测试表达式 ] #如果 [ 为真 ]
then #那么
命令1 #执行该命令
elif #又如果
命令2 #执行命令2
elif #又如果
命令3 #执行命令3
fi #退出

case语句的结构
语法:
case 变量引用 in
模式1)
命令分支1
;;
模式2)
命令分支2
;;
... *)
默认命令分支
esac
注意:
case支持glob风格的通配符:
* :任意长度任意字符
? :任意单个字符
[0-9] :指定范围内的任意单个字符
| :“或者”的意思,如: a|b

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律