Shell脚本if分支语句详解与实操 📅 2026/7/11 4:28:56 Shell脚本结构化命令if条件判断、test命令、括号用法实操一、知识点概念理解1. if语句三种基础结构1if‑then 单分支语句语法格式if 条件测试then执行语句fi逻辑条件成立执行then中的代码条件不成立直接结束脚本。2if‑then‑else 双分支语句语法格式if 条件测试then条件成立执行else条件不成立执行fi逻辑二选一判断满足条件执行一段代码不满足执行另一段。3if‑elif‑else 多分支语句可以连续拼接多个elif从上往下依次匹配条件匹配成功就执行对应代码。if 条件1then语句1elif 条件2then语句2elif 条件3then语句3else以上条件都不满足时执行fi2. 4种条件测试方式核心重点① test命令作用专门用来测试数值大小、字符串对比、文件是否存在。语法test 测试条件示例test 10 -gt 5判断10是否大于5。② 单方括号 [ ]等价于test日常脚本最常用语法[ 条件 ]⚠️ 注意括号左右内侧必须各有一个空格缺少空格脚本直接报错。可以完成数值、字符串、文件条件判断。③ 双方括号 [[ ]]高级判断语法在单方括号基础上升级支持字符串模糊匹配、通配符运算适合做模糊匹配。④ 括号区别总结写法 特点test 基础命令适合简单判断[ ] test简写shell标准写法只能精准匹配[[ ]] 高级用法支持模糊匹配、正则3. 嵌套if语句在一个if语句内部再写一套if判断完成多层筛选先判断大条件再细化小条件。4. 复合条件判断两种符号• 逻辑与两个条件必须同时成立• || 逻辑或任意一个条件成立即可。二、实操脚本4个脚本覆盖全部考点直接在Xshell运行脚本1if‑then‑else 基础判断if_else.sh功能输入两个数字判断第一个数是否大于第二个数#!/bin/bashread -p 请输入第一个数字 num1read -p 请输入第二个数字 num2if [ $num1 -gt $num2 ]thenecho $num1 大于 $num2elseecho $num1 小于等于 $num2fi脚本2elif多分支判断elif.sh功能输入分数判断成绩等级#!/bin/bashread -p 请输入考试分数 scoreif [ $score -ge 90 ]thenecho 成绩等级优秀elif [ $score -ge 80 ]thenecho 成绩等级良好elif [ $score -ge 60 ]thenecho 成绩等级及格elseecho 成绩等级不及格fi脚本3嵌套if 复合条件if_qian.sh功能先判断年龄再复合判断性别嵌套if结构#!/bin/bashread -p 输入年龄 ageread -p 输入性别男/女 sexif [ $age -ge 18 ] [ $sex 男 ]then#内部嵌套ifif [ $age -ge 22 ]thenecho 符合参军年龄要求elseecho 年龄偏小fielseecho 暂不符合条件fi脚本4双方括号[[ ]]模糊匹配double.sh功能判断输入字符是否以a开头演示高级字符串匹配#!/bin/bash#!/bin/bashread -p 请输入字符 strif [[ $str a* ]]thenecho 该字符串以a开头elseecho 开头不是afi脚本5test命令单独使用#!/bin/basha20b15if test $a -gt $bthenecho a更大fi三、知识框架总结1. 语句层级单分支if‑then→双分支if‑then‑else→多分支elif→if嵌套。2. 条件判断4种方式test命令、单方括号[ ]、双方括号[[ ]]。3. 逻辑运算逻辑与、||逻辑或实现复合条件。4. 易错点单方括号两边必须留空格数值判断用‑gt、‑ge、‑lt、‑le不能直接用 。