
一、Shell基础if-then单分支语句if判断底层逻辑Shell脚本if语句不直接判断等式而是执行if后方Linux命令依靠命令退出状态码判定真假。命令执行成功返回状态码0执行then内部代码命令执行失败返回非0数字直接跳过then代码块。if支持分行标准写法与分号同行简写写法两种运行效果完全一致。实操分别使用pwd合法命令、不存在的错误命令对比演示两种执行结果。if-then-else双分支语句单纯单分支仅能处理条件成立场景else分支用于捕获命令执行失败场景实现二选一逻辑。课件案例用于校验系统用户目录是否存在目录存在输出对应提示不存在打印用户不存在提示。elif多分支连续判断多层嵌套if可读性较差elif可串联多个独立判断条件整套判断结构仅末尾一个fi闭合。程序从上至下依次校验条件匹配成立分支后停止后续判断适用于多条件分级校验场景。二、test命令自定义条件判断体系test命令基础作用与两种写法原生if仅能判断命令执行状态test可自定义数值、字符串、文件三类条件条件成立返回0退出码。支持完整test关键字写法、单中括号简写写法单中括号左右两侧必须预留空格缺少空格会直接触发语法报错。课件通过空条件、空变量、有值变量三组案例演示test基础判定规则。test数值比较仅支持整数test数值运算仅支持整数传入浮点数字会直接抛出整数表达式报错。课件三组实操案例分别校验数字大小、两数字相等对比、浮点数值报错复现直观展示数值运算限制与各类比较规则。test字符串比较字符串对比严格区分大小写大于、小于符号必须添加转义符同时支持空值检测-n判断字符串非空、-z判断字符串为空。课件设计三组案例用户名匹配判断、大小写字符串字典序对比、空字符串校验覆盖全部字符串测试场景。test文件比较test可读取Linux文件系统属性检测文件/目录是否存在、文件类型、读写执行权限、文件新旧程度。实操案例检测当前用户家目录是否存在输出对应提示文字适用于运维脚本文件自动校验场景。三、复合条件测试布尔逻辑复合条件依靠逻辑与、逻辑或实现多条件联合校验。逻辑与要求两个条件全部成立整体才为真逻辑或任意一个条件成立整体即为真两种逻辑均使用单中括号拆分独立条件搭配对应逻辑符号连接。课件案例同时校验目录存在、目录内文件可写双重条件完整演示逻辑与使用方式。四、双方括号与双括号高级判断双括号(( ))高级数学运算基础test仅支持简单整数对比双括号拓展复杂数学运算支持自增自减、幂运算、位移、逻辑运算内部大小符号无需转义多用于复杂数值判断场景。课件案例通过平方运算搭配if完成数值校验。双方括号[[ ]]字符串模式匹配双方括号为bash独有语法核心优势是支持字符串模糊匹配字符串对比功能更完善常用于用户名、文本匹配场景。课件案例判断当前登录用户是否为指定用户名输出对应欢迎提示。五、课程知识点小结结构化命令实现Shell脚本流程控制if-then依靠命令退出状态码判断真假fi关键字闭合整套if结构不可省略if-then-else实现二分支逻辑elif实现多分支连续判断if语句内部支持嵌套if多层校验test命令分为完整写法与单中括号简写支持数值、字符串、文件三类条件检测数值仅支持整数字符串对比区分大小写文件检测可校验目录、权限、新旧复合条件通过逻辑与、||逻辑或实现多条件联合校验双括号(( ))用于复杂数学表达式运算双方括号[[ ]]支持字符串模式匹配属于bash高级判断语法。