
一、基础结构化if判断语句体系if-then 基础语句用途Shell最基础的分支结构化命令条件成立时执行then内部代码条件不成立直接跳过。完整固定语法if 测试条件then满足条件执行的命令fi说明fi是if语句结束标记必须成对出现。if-then-else 双分支语句用途区分两种结果条件成立执行then代码不成立执行else内代码二选一执行。语法格式if 测试条件then条件成立执行内容else条件不成立执行内容fiif-then-elif 多分支语句用途实现多条件连续判断依次匹配多个条件匹配成功即执行对应代码全部不匹配可搭配else兜底。语法结构if 条件1then代码1elif 条件2then代码2else所有条件都不满足时执行fiif嵌套if语句用途在if/else代码块内部再次书写if判断实现多层级复合逻辑判断满足细分场景筛选需求。简单结构示例if 外层条件thenif 内层细分条件then多层条件同时满足才执行fifi二、test 测试命令用途专门用于测试数值大小、字符串对比、文件/目录存在状态返回0代表条件成立非0代表不成立。核心用法分类数值测试-eq等于、-ne不等于、-gt大于、-lt小于、-ge大于等于、-le小于等于字符串测试相等、!不相等、-z字符串为空、-n字符串非空文件状态测试-e文件/目录存在、-f普通文件、-d文件夹、-r可读、-w可写、-x可执行书写格式test 条件表达式常搭配if使用。三、单方括号 [ ] 条件测试用途bash内置简写功能完全等价于test命令简化if内条件书写用于数值、字符串、文件判断。使用强制规则括号内侧前后必须留空格语法 [ 条件内容 ]适用场景基础数字对比、字符串相等判断、文件检测不支持复杂数学运算与高级通配匹配。四、双括号 (( )) 数值运算判断用途仅用于整数数学运算、数值大小判断支持完整数学运算符无需转义符号适合数字逻辑。支持运算符 - * / **幂运算、 !使用规则括号内侧前后空格可加可不加直接书写数学表达式课件数值判断案例专用语法。示例if (( $var1 ** 2 90 ))五、双方括号 [[ ]] 高级字符串匹配用途强化版条件测试支持高级字符串模糊匹配、复合逻辑专门用于文本、用户名匹配场景。核心优势支持逻辑和、||逻辑或复合条件支持通配符模糊匹配字符串适合字符类判断。课件示例if [[ $USER “zhang” ]]用于匹配当前登录用户名。六、复合条件判断逻辑与、逻辑或||用途同时校验多个条件组合判断逻辑。 逻辑与前后两个条件必须全部成立整体条件才为真|| 逻辑或两个条件任意一个成立整体条件即为真使用位置可写在[ ]、[[ ]]条件内部实现多条件同时筛选。