流程控制是编程语言的核心能力,Shell 也不例外。没有流程控制,脚本只能从头执行到尾,没法根据条件做不同的事,也没法重复执行某些操作。
条件判断是流程控制的基础。Shell 的 if 语句看起来简单,但条件表达式的写法有很多门道。数字比较、字符串比较、文件测试,各有各的操作符。if 还能和 test 命令、双方括号配合使用,不同的写法有不同的特性。
case 语句适合多分支场景。当判断条件有很多种可能时,用 if-elif 会写得很长,case 语句更清晰。case 还支持模式匹配,比简单的等值判断更灵活。
循环是自动化脚本的核心。for 循环适合遍历列表,while 循环适合条件驱动的场景,until 循环是 while 的变种。选择哪种循环,取决于具体需求。
循环控制语句 break 和 continue 让循环更灵活。遇到特定条件时跳出循环,或者跳过当前迭代继续下一次,这些操作在处理数据时经常用到。
这一部分的内容是写复杂脚本的基础。掌握好流程控制,才能写出真正有用的自动化脚本。