《Linux Shell 结构化编程全梳理:分支判断与循环核心语法笔记+课后练习》

发布时间:2026/10/26 2:45:44

《Linux Shell 结构化编程全梳理:分支判断与循环核心语法笔记+课后练习》 笔记部分一、分支判断命令1. if-then 语句bash 的 if 语句以命令退出状态码为判断依据退出码为0执行成功则执行 then 代码块非0则跳过以 fi 结束。基础结构if 命令 then 执行语句 fi扩展形式if-then-else双分支执行失败时运行 else 代码块嵌套 if在 else 分支中继续编写判断逻辑elif多分支写法替代多层嵌套 if简化多条件判断2. test 条件测试test 为 if 提供条件测试能力条件成立返回退出码0不成立返回非0。等价简写为 [ 测试条件 ]方括号内侧必须保留空格否则会触发语法错误。支持三类测试数值比较仅支持整数包含等于(eq)、大于(gt)、大于等于(ge)、小于(lt)、小于等于(le)、不等于(ne)字符串比较支持相等、不等、长度非空(-n)、长度为空(-z)大小比较需转义符号文件比较可检测目录(-d)、普通文件(-f)、文件存在(-e)、可读(-r)、可写(-w)、可执行(-x)、文件非空(-s)等状态3. 复合条件与增强语法复合条件测试通过布尔运算符拼接多条件逻辑与[ 条件1 ] [ 条件2 ]两条件同时成立为真逻辑或[ 条件1 ] || [ 条件2 ]任一条件成立即为真双括号 (( 表达式 ))支持高级数学运算符号无需转义可使用自增、幂运算、位运算等写法双方括号 [[ 表达式 ]]test 的增强写法扩展字符串比较能力支持通配符模式匹配4. case 多值匹配用于单个变量的多值匹配场景可替代大量 elif 分支语法更清晰。用 | 连接多个匹配模式*) 作为默认分支匹配所有未命中的情况每个分支以 ;; 结尾整体语句以 esac 结束二、循环控制命令1. for 循环用于遍历一系列值每次迭代取一个值执行指定命令以 done 标记结束。常见取值方式直接读取列表、从变量取值、处理含特殊符号的复杂值、读取命令执行结果、修改IFS分隔符、通配符遍历目录支持C语言风格写法 for (( 初始值; 条件; 迭代 ))可同时迭代多个变量条件不成立时循环终止2. while 循环相当于 if-then 与循环的结合测试命令退出码为0时持续循环返回非0时停止。测试条件写法与 if 语句完全一致可搭配 test 或方括号循环内必须修改测试条件的值否则会进入死循环支持多个测试命令所有命令会在每次迭代中全部执行3. until 迭代语句逻辑与 while 完全相反测试命令退出码非0时执行循环体返回0时循环结束适合“直到满足条件就停止”的场景。4. 嵌套循环循环内部可嵌套任意循环语句总执行次数为各层循环次数的乘积。常配合修改 IFS 环境变量用于逐行逐字段处理文件数据。5. 循环控制命令break立即跳出当前正在执行的循环continue终止本次循环直接进入下一轮迭代两者均可后跟数字 n指定要跳出/跳过的循环层级处理多层嵌套场景6. 循环输出重定向在 done 关键字后追加重定向符号或管道可将循环全部输出写入文件或交给后续命令处理无需打印到终端例如 done output.txt、done | sort。练习部分使用if-then语句相关练习题使用if-then语句相关练习题操作结果Case命令相关练习题Case命令相关练习题操作结果for循环语句相关练习题for循环语句相关练习题操作结果until迭代语句相关练习题until迭代语句相关练习题操作结果嵌套循环相关练习题嵌套循环相关练习题操作结果重定向循环的输出相关练习题重定向循环的输出相关练习题操作结果
延伸阅读

更多相关文章

2026/10/25 6:37:55

SQL 分层建模:CTE 嵌套三层以上就该拆视图了

SQL 分层建模:CTE 嵌套三层以上就该拆视图了 一、CTE:SQL 的"段落标题" 写文章不用段落标题,几百行文字挤在一起,读者找不到重点。SQL 也一样——几百行查询挤在一起,没有结构划分,读的人只能从头…

2026/10/23 11:39:11

终极指南:如何高效破解网易NeoX游戏NPK文件格式

终极指南:如何高效破解网易NeoX游戏NPK文件格式 【免费下载链接】unnpk 解包网易游戏NeoX引擎NPK文件,如阴阳师、魔法禁书目录。 项目地址: https://gitcode.com/gh_mirrors/un/unnpk 想要深入了解网易游戏内部资源结构吗?NPK文件格式…

2026/10/26 2:40:57

UNet图像分割实战:PyTorch实现、训练链路与损失函数选型

先说个我自己的经历:去年帮人做一个细胞显微图像的分割练手项目,需求很朴素——把视野里每一张细胞膜轮廓都描出来,输出一张和原图同尺寸的二值掩膜。我第一反应就是 UNet,从拉代码到跑出第一版能看的结果,前后不到十分…

2026/10/26 2:40:57

海康威视SDK V6.1.6.45 Windows 64位部署全链路指南

简介:本资源是海康威视官方设备网络SDK的Windows 64位开发套件(V6.1.6.45,2021年3月2日构建),专为嵌入式软件开发者、安防系统集成工程师及智能视频平台二次开发人员设计,用于实现对海康IPC、NVR等硬件设备…

2026/10/26 2:40:57

WPF TreeView数据绑定、虚拟化、懒加载与勾选联动实战

TreeView 这个控件,在 WPF 里属于那种“入门三天、精通三年”的角色。几乎每个桌面项目都躲不开它:设备树、组织架构、文件目录、权限菜单、分类目录、工艺流程节点……只要数据有层级,第一反应就是往 TreeView 上套。但真把它塞进生产环境&a…

2026/10/26 2:40:57

WPF TreeView树形控件实战:数据绑定、虚拟化与交互避坑指南

做 WPF 桌面端的人,大概都绕不开 TreeView 这个控件。它出现在几乎每一个后台管理工具、配置编辑器、文件浏览器、组织架构图、权限配置页里,看上去只是"能展开的列表",但真正动手做第一个带层级的业务树时,十有八九会在半天之内撞上这么几件事:节点点了没反应、展开…

2026/10/26 2:40:57

Web端PDF预览技术解析与pdf.js实战优化

1. 项目概述:Web平台PDF预览的核心需求在Web开发中实现PDF文件预览是个看似简单却暗藏玄机的需求。我最近接手的一个企业文档管理系统项目就遇到了这个经典问题——客户要求在H5页面无缝预览各种规格的PDF文档,还要支持标注、缩放等基础功能。这个需求背…

2026/10/26 2:35:57

scikit-learn入门:传统机器学习实战与工业部署

1. 为什么选择scikit-learn开启AI之旅在机器学习工具百花齐放的今天,scikit-learn始终保持着不可替代的地位。这个基于Python的开源库自2007年诞生以来,已经成为全球数据科学家的标准工具箱。我仍记得第一次用三行代码完成线性回归时的震撼——原来机器学…

2026/10/26 0:20:20

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/26 1:53:47

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/26 0:20:17

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/26 0:00:48

Nested Learning:解决AI灾难性遗忘的分层记忆架构

1. 为什么AI需要"记忆"能力?在传统深度学习模型中,我们常遇到一个根本性问题:模型在处理新任务时,往往会完全遗忘之前学到的知识。这种现象被业界称为"灾难性遗忘"(Catastrophic Forgetting)。想象一下&#…

2026/10/26 0:00:48

企业级大模型应用:OCR预处理、Dify编排与DeepSeek落地实战

1. 这不是“用大模型”,而是重构工作流的起点“大模型的应用和工具”——这八个字现在被贴在无数技术分享、招聘JD、内部立项书的标题栏里,但绝大多数人点进去后看到的,是零散的API调用示例、几个开源UI截图、或者一句“接入LLM就能降本增效”…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑