一、基础核心概念1.结构化命令Shell脚本流程控制语法依靠条件判断选择性执行代码核心实现载体为if语句。2.退出状态码命令执行后的返回标识0代表执行成功非0代表执行失败if语句依靠该值判定分支走向。3.fiif结构结束标识符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- 双方括号 [[ ]] 字符串模式匹配
第十次作业-使用结构化命令
一、基础核心概念1.结构化命令Shell脚本流程控制语法依靠条件判断选择性执行代码核心实现载体为if语句。2.退出状态码命令执行后的返回标识0代表执行成功非0代表执行失败if语句依靠该值判定分支走向。3.fiif结构结束标识符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- 双方括号 [[ ]] 字符串模式匹配