流程控制
以下是Linux Shell流程控制结构的纯文本介绍,不包含代码示例:
一、条件判断(if语句)
单分支if
当条件成立时执行操作,语法以if开始、fi结束,条件写在[]或[[]]中。
双分支if-else
扩展单分支结构,条件成立执行代码块1,否则执行代码块2,通过else衔接两个分支。
多分支if-elif-else
支持多个条件判断,依次检查if和elif条件,所有条件均不满足时执行else块。
二、循环结构
for循环
列表遍历:逐个处理空格分隔的列表项(如文件、字符串)
数字范围:通过{start...end}或seq生成序列
类C风格:使用(( ))实现计数器控制的循环
while循环
条件为真时重复执行,适用于未知迭代次数的场景(如监控、文件逐行读取)。注意需在循环体内更新条件变量避免死循环。
until循环
与while逻辑相反,条件为假时持续执行,直到条件变为真。
三、流程控制特性
条件测试类型
数值比较:-eq(等于)、-gt(大于)等
字符串比较:=(相等)、-z(空串)等
文件测试:-e(存在)、-d(目录)等
循环控制关键字
break:立即终止循环
continue:跳过当前迭代进入下一次循环
逻辑运算符
&&(与)、||(或)、!(非)可用于组合多个条件。
四、适用场景对比
if/else:条件分支处理(如服务状态检查、参数验证)
for:已知迭代次数的批量操作(如文件重命名、数据遍历)
while:持续监控或动态条件循环(如日志实时分析)
test命令
test 命令是 Shell 内置的条件判断工具,用于评估表达式并返回布尔值(真/假),它通常与 if 语句结合使用,是 Shell 脚本中实现逻辑控制的基础。
Shell 中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
语法格式
test EXPRESSION
# 或
[ EXPRESSION ] # 注意方括号内必须有空格