第十次作业-使用结构化命令

📅 2026/7/11 15:23:00 👁️ 阅读次数 📝 编程学习
第十次作业-使用结构化命令

一、基础核心概念
1.结构化命令
Shell脚本流程控制语法,依靠条件判断选择性执行代码,核心实现载体为if语句。
2.退出状态码
命令执行后的返回标识,0代表执行成功,非0代表执行失败;if语句依靠该值判定分支走向。
3.fi
if结构结束标识符,if逆序拼写,每个if必须匹配对应fi,缺失会触发语法报错。
4.test命令
自定义条件检测工具,弥补原生if仅能判断命令运行结果的短板;条件成立返回0,反之返回非0;[]是test的简写形式,二者等价。
5.复合条件
布尔逻辑组合多条test判断,一次性校验多组条件,分为逻辑与、逻辑或两类规则。
6.双括号 (( ))
Bash专属高级数值运算语法,拓展整数运算能力,支持复杂算术表达式,比较符无需转义。
7.双方括号 [[ ]]
Bash专属高级字符串判断语法,支持通配符模糊匹配,简化字符串大小比较书写规则。

二、知识框架总览
(一)if系列结构化语句
1.if-then基础语句
作用:根据命令退出状态码分支执行,命令返回0(执行成功)执行then内代码,非0则跳过。
语法:分行写法 if 命令;then 代码;fi;简写 if 命令; then 代码; fi。
fi 是if语句结束标记,每个if必须配套fi。
2.if-then-else 二分支
作用:命令成功执行then,失败执行else,两种结果分开处理。
3.if-elif 多分支
作用:连续多条件判断,从上至下匹配,命中即执行对应代码,全部不匹配可加else。
4.if嵌套
作用:if内部再写if,实现多层逻辑,每一层if都要有独立fi闭合。

(二)test条件测试命令(等价 [])
单纯if只能判断命令执行结果,test可检测数值、字符串、文件三类条件,条件成立返回0。
1.数值比较(仅支持整数)
-eq相等、-ne不等、-gt大于、-ge大于等于、-lt小于、-le小于等于;不支持浮点数。
2. 字符串比较
=相等、!=不等;> < 需要转义 > <;
-n:字符串非空;-z:字符串为空。
3. 文件/目录检测
-e文件/目录存在;-d目录;-f普通文件;
-r可读、-w可写、-x可执行;
-nt文件更新、-ot文件更旧。
注意:[] 左右两侧必须留空格,否则语法报错。

(三)复合条件逻辑
使用布尔运算符拼接多个test判断:
1.[条件1] && [条件2] 逻辑与:两个条件同时成立才为真;
2.[条件1] || [条件2] 逻辑或:任意一个条件成立即为真。

(四)双括号 (( )) & 双方括号 [[ ]]
1.双括号 (( ))
用途:高级整数数学运算;支持++自增、**平方、位运算、逻辑运算;> <无需转义。
2.双方括号 [[ ]]
用途:高级字符串处理;支持通配符模糊匹配,比较符号不用转义,仅bash支持。

三、实操过程截图
1.模块1-基础 if-then 语句


2.模块2- if-then-else 二分支判断


3.模块3-多分支 elif 语句


4.模块4- if 嵌套语句


5.模块5- test数值比较(仅整数)


6.模块6- test 字符比较


7.模块7- test 文件/目录判断


8.模块8- 复合条件 &&与 、 ||或


9.模块9- 双括号(( ))高级数学运算


10.模块10- 双方括号 [[ ]] 字符串模式匹配