当前位置: 首页 > news >正文

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 -lt
bash 原生 test 不支持小数浮点运算
case 每个分支末尾必须 ;; 结束
if 语句必须成对出现 if … fi,嵌套 if 缩进对齐方便阅读

更多的结构化命令
一、for 循环(两种写法)

  1. 基础 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’只按行分割,解决带空格文件 / 文本错乱
    易错点:带空格 / 单引号的复杂值,需要转义或双引号包裹。
  2. C 语言风格 for 循环(数值计数专用)
    语法:
    bash
    运行
    for ((初始赋值;判断条件;迭代更新))
    do
    命令
    done
    二、while 循环(条件成立就循环)
    语法:
    bash
    运行
    while [ 条件测试 ]
    do
    循环体
    done
    逻辑:条件返回0(真),持续循环;条件非 0,结束循环。
    关键点:循环内必须修改变量,否则死循环。
    示例:

    三、until 循环(和 while 完全相反)
    语法:
    bash
    运行
    until [ 条件 ]
    do
    循环体
    done
    逻辑:条件为假时执行循环;条件为真,退出循环。
    练习 2:until 输出 100 以内 7 的倍数。
    四、嵌套循环
    循环内部再套循环(for/while/until 任意组合)
    练习 3:双层 for 嵌套打印九九乘法表。
    五、循环控制关键字 break /continue
    break:直接跳出当前循环
    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−ge100(i≥100时停止)•while逻辑:条件成立继续循环,判断条件写i -ge 100(i≥100 时停止) • while逻辑:条件成立继续循环,判断条件写ige100i100时停止)while逻辑:条件成立继续循环,判断条件写i -lt 100(i<100 时继续)


嵌套循环:外层循环控制行数(乘数i,19),内层循环控制每行的列数(被乘数j,1i)
外层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就能看到三个用户家目录及新建文件夹的完整信息

http://www.jsqmd.com/news/1162164/

相关文章:

  • TLA2518与PIC18F4680高精度ADC系统设计指南
  • 手机MP4视频转换步骤详解,2026年免费攻略 - 软件工具教程方法
  • Thymeleaf Layout Dialect与Thymeleaf 3.x集成教程:提升前端开发效率的10个技巧
  • 如何用Python调用lungmask API进行批量肺部CT分割:完整指南与实用技巧
  • 未来展望:@babel/preset-modules如何融入Babel生态系统发展路线图
  • Bebas Neue字体终极指南:为什么这款开源标题字体能成为你的设计秘密武器?
  • GreenStash项目路线图:未来功能规划与社区发展展望
  • 湟源黄金回收避坑指南!3 家本地实体门店上门范围、服务特色、适配人群深度对比 - 铂衡汇黄金珠宝
  • 2026邢台本地认可 5 家金银铜铁铅锌矿石检测机构实地测评汇总 TOP5 品位鉴定 + 元素分析 + 贵金属含量检测 附电话地址 - 鉴安检测
  • VietOCR Transformer OCR:10分钟从零开始部署越南文字识别终极指南
  • 2026新疆本地认可 5 家环境现状监测环评检测机构实地测评汇总 废气废水 + 土壤噪声 + 竣工验收监测 附电话地址 - 中检检测集团
  • 如何安装Voron Afterburner Upgrade?新手友好的完整安装指南
  • MATLAB R2022a 并行计算工具箱 7.6 配置:3步验证本地集群与GPU可用性
  • 2026广州心理咨询机构怎么选?从专业角度拆解5个关键指标 - GrowthUME
  • 2026合肥工贸高级技工学校完整招生解读:升学就业双赛道,低分学子学历技能一步到位 - 小张zc
  • EasySpider 44k Star 的开源可视化爬虫工具
  • 天津静海区本地黄金回收红榜|两家靠谱老店实测,乡镇变现不踩坑 - 清月黄金回收
  • matrixprofile-ts 与其他时间序列库对比:为什么它是模式挖掘的最佳选择?
  • 非标厂三维改造实录:硬件开支缩减 60%,一台服务器带动10人SolidWorks设计
  • 计算机毕业设计之企业电子投票系统
  • 2026乌鲁木齐本地认可 5 家土壤检测机构实地测评汇总 TOP5 重金属 + 养分 pH + 污染风险监测 附电话地址 - 中安检测集团
  • next-compose-plugins高级技巧:optional插件与动态配置实战
  • The Deck核心技术揭秘:Flutter + Redux构建跨平台游戏引擎
  • statig超级状态详解:如何优雅管理复杂状态逻辑
  • 2026年重庆环保墙板怎么选不踩雷?以及防潮防撞避坑推荐 - 中国品牌企业推荐网
  • The Deck架构设计:PlantUML图解游戏引擎核心组件
  • 浓缩减量和达标排放怎么做?蒸发器厂家要按后端目标来选 - 资讯焦点
  • 终极指南:如何快速免费提取网易游戏NPK文件资源
  • 美团购物卡闲置太可惜,了解2026年对应的各面值回收价格表 - 淘淘收小程序
  • 【OAG vs RAG】RAG的“语义崩溃“:为什么你的知识库越大,AI越笨?