shell学习笔记(7)流程控制
1、if else
1 2 3 4 5 6 7 | if condition then command1 command2 ... commandN fi |
2、if else-if else
1 2 3 4 5 6 7 8 9 | if condition1 then command1 elif condition2 then command2 else commandN fi |
注:
- if else 的 [...] 判断语句中大于使用 -gt,小于使用 -lt;
- 如果使用 ((...)) 作为判断语句,大于和小于可以直接使用 > 和 <。
3、for 循环
1 2 3 4 5 6 7 | for var in item1 item2 ... itemN do command1 command2 ... commandN done |
4、while
1 2 3 4 | while condition do command done |
5、until循环
until 循环执行一系列命令直至条件为 true 时停止。
until 循环与 while 循环在处理方式上刚好相反。
1 2 3 4 | until condition do command done |
6、case ... esac
case ... esac 为多选择语句,与其他语言中的 switch ... case 语句类似,是一种多分支选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行结束,跳出整个 case ... esac 语句,esac(就是 case 反过来)作为结束标记。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | case 值 in 模式1) command1 command2 ... commandN ;; 模式2) command1 command2 ... commandN ;; esac |
case 工作方式如上所示,取值后面必须为单词 in,每一模式必须以右括号结束。取值可以为变量或常数,匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。
7、循环控制
- break 命令允许跳出所有循环(终止执行后面的所有循环)。
- continue 命令与 break 命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。
参考:Shell 流程控制 | 菜鸟教程 (runoob.com)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码