发布时间:2026/8/28 12:41:01
《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/8/28 11:48:03

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

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

2026/8/26 18:37:21

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

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

2026/8/29 11:27:13

DeepSeek+Pi vs Claude Code:模型可替换性背后的工程逻辑

这段时间,开发者圈子里有一个组合被反复拿出来跟 Claude Code 对比:DeepSeek Pi。无论你是在技术群里看到“用这套组合写代码省下了不少预算”,还是在某个环境配置帖里搜到 DeepSeek harness、Pi agent、Claude Code 接入 DeepSeek 这样的关…

2026/8/29 11:27:13

GitNexus是什么?零服务器代码知识图谱引擎完整指南

GitNexus是什么?零服务器代码知识图谱引擎完整指南 【免费下载链接】GitNexus GitNexus: The Zero-Server Code Intelligence Engine - GitNexus is a client-side knowledge graph creator that runs entirely in your browser. Drop in a git repository (Github,…

2026/8/28 16:16:17

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/28 16:16:21

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/28 16:16:22

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/29 0:01:10

etc目录下的profile.d文件目录设置环境变量和全局脚本shell

一、设置环境变量etc目录下的profile.d文件目录 /etc/profile.d1、编写 vi test.sh文件内容# jdk变量 export ZHK_HOME/root export PATH$PATH:$ZHK_HOME/test # 可以取出来ZHK_HOME变量给ZZZ_HOME赋值 export ZZZ_HOME${ZHK_HOME}/test2、刷新 执行source /etc/profile 命令使…

2026/8/29 0:01:10

【JavaScript】内存管理-垃圾回收机制-内存泄露

内存管理 C 语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()。 而 JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。释放的过程称为垃圾回收。 整…

2026/8/29 0:01:10

Labgrid-MCP:为嵌入式硬件实验室接入AI Agent操控能力

Labgrid-MCP 的目标是把 MCP(Model Context Protocol)能力延伸到真实嵌入式硬件实验室:AI Agent 通过一个标准化的 MCP Server,就能查看目标板状态、控制上电断电、复位开发板、读取串口日志,甚至执行镜像刷写。对于经…

2026/8/28 16:16:48

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/28 16:16:50

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/28 11:06:45

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…