Linux Shell 结构化命令及更多的命令指令
课堂笔记一、if-then 基础语句1.核心逻辑if 后面跟普通命令不是等式0 → 跳过 then直接执行 fi 之后内容2.示例if - then 语 句中 不管 命 令是 否 成功 执 行 你 都只 有 一种选择命令返回一个非零退出 状 态码 i f - t he n - e l s e 语 句能 够 执 行另一组命令嵌套的 if - then 语句位 于 主 if - then - else 语句 的 else 代 码 块 中3.if-then-else 双分支可以使用 else 部分的另一种形式 elif 。 这样就不用再书写多个 if - then 语句了4.嵌套 if /elif 多分支elif else if不用多层嵌套示例二、test 条件测试命令if 只能判断命令执行状态test 实现数值 / 字符串 / 文件条件判断test 命令提供了在 if - then 语句中测试不同条件的途径test 命令可以判断三类条件✓ 数值比较✓ 字符串比较✓ 文件比较三、复合条件测试逻辑与 / 或逻辑与 两个条件同时成立[ 条件1 ] 条件2 ]逻辑或 || 任意一个成立[ 条件1 ] || [ 条件2 ]四、双方括号 [[]] 双括号 (( ))双括号命令 (( expression )) 允许你在比较过程中使用高级数学表达式test 命令只能在比较中使用简 单的算术操作双括号命令提供了更多的数学符号 并且不需要将双括号中表达式里的大于号转义双方括号命令 [[ expression ]] 使用了 test 命令中采用的标准字符串比较 并且提供模式匹配五、case 多分支匹配替代大量 elif语法case $变量 in匹配1|匹配2)命令;;匹配3)命令;;*) # 默认所有其他情况默认命令;;esac六、课堂易错点总结手写标注[ ] 左右必须空格[1 -eq 2] 直接报错单括号数值比较不能用 要用 -gt -ltbash 原生 test 不支持小数浮点运算case 每个分支末尾必须 ;; 结束if 语句必须成对出现 if … fi嵌套 if 缩进对齐方便阅读更多的结构化命令一、for 循环两种写法基础 for in 遍历循环语法bash运行for 变量 in 取值列表do循环执行命令done支持多种列表来源直接写值for user in root jack xh变量存储列表name_list“a b c”; for u in $name_list命令输出作为列表for line in(cattest.txt)通配符遍历目录forfilein./∗修改分隔符IFS默认空格/制表/换行IFS(cat test.txt) 通配符遍历目录for file in ./* 修改分隔符 IFS默认空格 / 制表 / 换行IFS(cattest.txt)通配符遍历目录forfilein./∗修改分隔符IFS默认空格/制表/换行IFS\n’只按行分割解决带空格文件 / 文本错乱易错点带空格 / 单引号的复杂值需要转义或双引号包裹。C 语言风格 for 循环数值计数专用语法bash运行for ((初始赋值;判断条件;迭代更新))do命令done二、while 循环条件成立就循环语法bash运行while [ 条件测试 ]do循环体done逻辑条件返回0(真)持续循环条件非 0结束循环。关键点循环内必须修改变量否则死循环。示例三、until 循环和 while 完全相反语法bash运行until [ 条件 ]do循环体done逻辑条件为假时执行循环条件为真退出循环。练习 2until 输出 100 以内 7 的倍数。四、嵌套循环循环内部再套循环for/while/until 任意组合练习 3双层 for 嵌套打印九九乘法表。五、循环控制关键字 break /continuebreak直接跳出当前循环break n跳出 n 层嵌套循环continue跳过本次循环剩余代码直接进入下一轮continue n跳到 n 层循环下一次迭代六、循环处理文件数据 核心修改IFS分隔符嵌套循环读取/etc/passwd冒号分割字段七、重定向循环输出在done后加重定向 / 管道整个循环输出统一处理输出写入文件done output.txt管道传递done | sort八、总结区分for已知遍历列表 / 固定次数遍历文件、批量用户while条件成立持续执行倒计时、读取数据流until条件不成立才执行反向判断场景IFS控制文本分割符号处理带空格、冒号文件break/continue灵活中断循环嵌套用数字指定层级练习用双引号包裹$file可以避免文件名带空格时循环拆分出错./*代表当前目录下所有文件包含普通文件、脚本、子文件夹每次循环会逐个取出文件依次做可执行、可写两项权限判断并输出结果7 的倍数从7开始每次自增 7只要数值小于 100 就输出 • until逻辑条件成立就停止循环所以判断条件写i−ge100i≥100时停止•while逻辑条件成立继续循环判断条件写i -ge 100i≥100 时停止 • while逻辑条件成立继续循环判断条件写i−ge100i≥100时停止•while逻辑条件成立继续循环判断条件写i -lt 100i100 时继续嵌套循环外层循环控制行数乘数i19内层循环控制每行的列数被乘数j1i外层i代表乘法表的行号内层j从 1 循环到当前行号i保证第i行只有i个式子echo -n不换行输出同一行的算式一行结束后用空echo换行用for循环遍历用户名列表Tom Jerry Spike批量创建用户每个用户家目录/home/用户名下建立 3 个子文件夹download、Picture、Document用mkdir -p确保多级目录可创建循环查看每个用户家目录内容通过重定向统一写入output.txt创建用户需要管理员权限命令前加sudo必须在具备 sudo 权限的普通账号如课堂常用的wjx或 root 下运行若重复执行已存在的用户和目录不会报错可正常跳过查看output.txt就能看到三个用户家目录及新建文件夹的完整信息

相关新闻

数字电路上拉与下拉电阻配置及DTH-08模块应用

数字电路上拉与下拉电阻配置及DTH-08模块应用

1. 信号上拉与下拉的基础概念解析 在数字电路设计中,上拉(Pull-up)和下拉(Pull-down)是两种最基本的信号状态控制技术。它们通过电阻网络为信号线提供确定的默认电平,防止浮空输入导致的逻辑错误。 1.1 上…

2026/7/10 17:23:09阅读更多 →
Windows/WSL安装opencode配置火山方舟DeepSeek、GLM等模型

Windows/WSL安装opencode配置火山方舟DeepSeek、GLM等模型

首先安装nvm,通过nvm安装nodejs,再用npm安装好opencode,有些人可能安装好了nodejs但是powershell识别不了npm,所以要执行这条指令,重新启动powershell。Set-ExecutionPolicy -Scope CurrentUser RemoteSigned安装好opencode后&…

2026/7/10 17:23:09阅读更多 →
SimplyTyped社区贡献指南:如何扩展和自定义类型工具

SimplyTyped社区贡献指南:如何扩展和自定义类型工具

SimplyTyped社区贡献指南:如何扩展和自定义类型工具 【免费下载链接】SimplyTyped yet another Typescript type library for advanced types 项目地址: https://gitcode.com/gh_mirrors/si/SimplyTyped SimplyTyped是一个强大的TypeScript类型工具库&#x…

2026/7/10 17:23:09阅读更多 →
makin项目编译与部署指南:从源码到可执行文件的完整构建流程

makin项目编译与部署指南:从源码到可执行文件的完整构建流程

makin项目编译与部署指南:从源码到可执行文件的完整构建流程 【免费下载链接】makin makin - reveal anti-debugging and anti-VM tricks [This project is not maintained anymore] 项目地址: https://gitcode.com/gh_mirrors/ma/makin makin是一个强大的反…

2026/7/10 18:13:14阅读更多 →
Sefirah-Android快速入门:5分钟完成Android与Windows的配对设置

Sefirah-Android快速入门:5分钟完成Android与Windows的配对设置

Sefirah-Android快速入门:5分钟完成Android与Windows的配对设置 【免费下载链接】Sefirah-Android Phone link / KDE Connect alternative 项目地址: https://gitcode.com/gh_mirrors/se/Sefirah-Android 想要实现Android手机与Windows电脑的无缝连接吗&…

2026/7/10 18:13:14阅读更多 →
从0到1掌握YAGO3:Java开发者必知的10个核心类与接口

从0到1掌握YAGO3:Java开发者必知的10个核心类与接口

从0到1掌握YAGO3:Java开发者必知的10个核心类与接口 【免费下载链接】yago3 YAGO is a large semantic knowledge base, derived from Wikipedia, WordNet, WikiData, GeoNames, and other data sources 项目地址: https://gitcode.com/gh_mirrors/ya/yago3 …

2026/7/10 18:13:14阅读更多 →
A3910与PIC32MX695F512L的电机控制方案详解

A3910与PIC32MX695F512L的电机控制方案详解

1. 项目概述:A3910与PIC32MX695F512L的黄金组合 在嵌入式系统开发领域,电机控制与微处理器的协同工作一直是工程师们面临的核心挑战。A3910作为一款高性能的直流电机驱动芯片,与Microchip的PIC32MX695F512L微控制器相结合,能够构建…

2026/7/10 18:13:14阅读更多 →
5大理由选择Reflex Platform:Haskell开发者的终极跨平台解决方案

5大理由选择Reflex Platform:Haskell开发者的终极跨平台解决方案

5大理由选择Reflex Platform:Haskell开发者的终极跨平台解决方案 【免费下载链接】reflex-platform A curated package set and set of tools that let you build Haskell packages so they can run on a variety of platforms. reflex-platform is built on top of…

2026/7/10 18:13:14阅读更多 →
102、HAT 详解:混合注意力 Transformer 在超分辨率中的创新与实现

102、HAT 详解:混合注意力 Transformer 在超分辨率中的创新与实现

102、HAT 详解:混合注意力 Transformer 在超分辨率中的创新与实现 从一次模型退化实验说起 去年秋天调一个视频超分项目,用SwinIR做baseline,在Urban100上PSNR死活卡在26.8dB上不去。我盯着tensorboard上的loss曲线,发现模型对高频纹理的恢复能力明显不足——尤其是那些带…

2026/7/10 18:08:13阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/10 12:10:00阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/10 12:29:21阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/10 4:59:05阅读更多 →
浏览器缓存行为深度解析:Chrome/Firefox/Safari 对 304 响应的 5 种触发场景对比

浏览器缓存行为深度解析:Chrome/Firefox/Safari 对 304 响应的 5 种触发场景对比

浏览器缓存行为深度解析:Chrome/Firefox/Safari 对 304 响应的 5 种触发场景对比当你在浏览器地址栏敲入一个网址时,背后可能隐藏着一场关于"要不要重新下载资源"的精密博弈。这场博弈的裁判是HTTP缓存机制,而304状态码则是这场博弈…

2026/7/10 0:00:01阅读更多 →
RoboWits:面向创造性问题求解的双臂机器人认知推理基准

RoboWits:面向创造性问题求解的双臂机器人认知推理基准

1. 项目概述:这不是又一个机器人抓取数据集,而是一次对“思考力”的压力测试 RoboWits——这个名字里藏着两个关键信号:“Robo”直指物理世界中的具身智能体,“Wits”则毫不掩饰地指向人类最核心的认知能力:机敏、判断…

2026/7/10 0:00:01阅读更多 →
5分钟完全指南:如何使用TegraRcmGUI图形化工具解锁Switch无限可能

5分钟完全指南:如何使用TegraRcmGUI图形化工具解锁Switch无限可能

5分钟完全指南:如何使用TegraRcmGUI图形化工具解锁Switch无限可能 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是一款专为Windows…

2026/7/10 0:00:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/10 13:39:09阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/9 15:50:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/10 17:29:22阅读更多 →