news 2026/4/14 16:06:19

Shell脚本详解:从理论到实践(三)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Shell脚本详解:从理论到实践(三)

Shell脚本详解:循环

1.for循环

用途:遍历一个列表(如文件列表、数字序列、数组元素等)并执行重复操作。

示例1:遍历文件列表
#!/bin/bash # 遍历当前目录下所有.txt文件 for file in *.txt; do echo "处理文件: $file" # 这里可以添加具体操作,比如统计行数 wc -l "$file" done

讲解

  • for file in *.txt:将当前目录下所有.txt文件赋值给变量file
  • do ... done:循环体,对每个文件执行操作。
  • echowc -l:打印文件名并统计行数。

示例2:遍历数字序列
#!/bin/bash # 生成数字序列:1到5 for i in {1..5}; do echo "当前数字: $i" done

讲解

  • {1..5}:生成一个从1到5的整数序列。
  • 每次循环将当前数字赋值给i并打印。

示例3:C语言风格遍历
#!/bin/bash # 类C语法:初始化i=1;循环条件i<=5;步长i++ for ((i=1; i<=5; i++)); do echo "计数: $i" done

讲解

  • ((i=1; i<=5; i++)):初始化、条件判断和步长更新。
  • 适用于需要精确控制循环次数的场景。

2.while循环

用途:当条件为真时重复执行代码块。

示例:读取文件内容
#!/bin/bash # 逐行读取文件 while IFS= read -r line; do echo "行内容: $line" done < "input.txt"

讲解

  • while read -r line:每次读取一行到变量line
  • IFS=:防止行首尾空格被截断。
  • < "input.txt":输入重定向,从文件读取数据。

示例:条件计数
#!/bin/bash count=0 while [ $count -lt 5 ]; do echo "计数: $count" ((count++)) done

讲解

  • [ $count -lt 5 ]:条件判断(-lt表示小于)。
  • ((count++)):自增操作,避免死循环。

3.until循环

用途:当条件为假时重复执行,与while相反。

示例:等待服务启动
#!/bin/bash status="down" until [ "$status" == "up" ]; do echo "等待服务启动..." sleep 1 status=$(curl -s http://localhost/status) done echo "服务已就绪!"

讲解

  • until [ "$status" == "up" ]:条件为假时持续循环。
  • curl检查服务状态,直到返回up才退出循环。

4. 循环控制语句

  • break:立即终止当前循环。
    for i in {1..10}; do if [ $i -eq 5 ]; then break # 当i=5时跳出循环 fi echo $i done
  • continue:跳过当前迭代,进入下一次。
    for i in {1..5}; do if [ $i -eq 3 ]; then continue # 跳过i=3的迭代 fi echo $i done

总结

循环类型适用场景特点
for遍历列表、数字序列明确循环次数
while条件为真时执行可能无限循环(需谨慎)
until条件为假时执行while互补

通过灵活组合这些循环结构,可以高效处理自动化任务,如日志分析、批量文件操作等。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 16:05:17

数据库连接池管理

数据库连接池管理&#xff1a;提升系统性能的关键技术 在现代应用开发中&#xff0c;数据库连接池管理是优化系统性能的核心技术之一。频繁创建和销毁数据库连接会消耗大量资源&#xff0c;导致响应延迟和系统负载过高。连接池通过预先创建并复用连接&#xff0c;显著提升数据…

作者头像 李华
网站建设 2026/4/14 16:04:27

免费开源Altium电路图转换器:无需专业软件查看SchDoc文件

免费开源Altium电路图转换器&#xff1a;无需专业软件查看SchDoc文件 【免费下载链接】python-altium Altium schematic format documentation, SVG converter and TK viewer 项目地址: https://gitcode.com/gh_mirrors/py/python-altium 你是否曾经遇到过这样的困扰&am…

作者头像 李华
网站建设 2026/4/14 16:01:02

企业上AI前必看:从场景出发,轻松收藏这份上AI准备指南

本文探讨了企业如何为上AI做好准备&#xff0c;强调应从具体场景出发&#xff0c;而非盲目选择模型。文章提出了识别高价值场景的标准&#xff0c;区分了对内提效和对外创新的不同路径&#xff0c;并阐述了个人使用AI与企业应用AI的区别。建议从边缘业务试水&#xff0c;降低试…

作者头像 李华
网站建设 2026/4/14 16:00:38

手把手教你部署音频像素工坊:一键开启语音合成与频谱分离

手把手教你部署音频像素工坊&#xff1a;一键开启语音合成与频谱分离 1. 音频像素工坊简介 音频像素工坊是一款融合现代语音合成(TTS)与频谱分离技术(UVR)的复古风格音频处理工具。它将专业音频处理能力封装在90年代复古像素风格的界面中&#xff0c;让枯燥的音频处理变得生动…

作者头像 李华
网站建设 2026/4/14 16:00:18

如何3步掌握applera1n:iOS设备激活锁绕过指南

如何3步掌握applera1n&#xff1a;iOS设备激活锁绕过指南 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 你是否曾经遇到过这样的情况&#xff1a;购买了一台二手iPhone或iPad&#xff0c;却发现设备被…

作者头像 李华
网站建设 2026/4/14 15:58:35

利用Docker和PostgreSQL构建高可用Joplin私有云笔记系统

1. 为什么需要私有云笔记系统 在这个信息爆炸的时代&#xff0c;笔记软件已经成为我们日常工作学习中不可或缺的工具。你可能用过不少笔记应用&#xff0c;但有没有遇到过这样的烦恼&#xff1a;免费版功能受限、同步速度慢、数据隐私没保障&#xff0c;或者突然某天服务商停止…

作者头像 李华