掌握Linux Shell循环(从零开始编写自动化脚本)

简介: 教程来源https://www.vps5.cn/本文介绍Linux Shell中for和while循环的使用方法,帮助读者掌握自动化脚本的核心技巧。通过实例详解循环语法、控制语句及实用注意事项,适合初学者快速入门并应用到文件处理、系统管理等任务中。

在Linux系统中,Shell脚本是自动化任务的利器。而Linux Shell循环则是让脚本具备重复执行能力的核心结构。无论你是刚接触命令行的小白,还是想提升脚本技能的用户,本文都将带你一步步理解并使用Shell中的循环语句。

为什么需要循环?

想象一下,你需要对100个文件执行相同的操作,比如重命名、压缩或备份。手动一条条输入命令显然效率低下。这时,Shell脚本教程中的循环结构就能帮你自动完成这些重复工作。

Shell中最常用的两种循环

在Bash(最常用的Linux Shell)中,主要有两种循环结构:

  • for 循环:适用于已知循环次数或遍历列表的情况。
  • while 循环:适用于条件为真时持续执行的情况。

1. for 循环详解

基本语法:

for 变量 in 列表do    命令1    命令2    ...done

示例1:打印数字1到5

#!/bin/bashfor i in 1 2 3 4 5do    echo "当前数字是: $i"done

示例2:使用花括号扩展(更简洁)

for i in {1..5}do    echo "第 $i 次循环"done

示例3:遍历目录中的所有 .txt 文件

for file in *.txtdo    echo "处理文件: $file"    # 这里可以加入实际操作,如 cp、mv 等done

2. while 循环详解

基本语法:

while [ 条件 ]do    命令done

示例:倒计时脚本

#!/bin/bashcount=5while [ $count -gt 0 ]do    echo "倒计时: $count"    sleep 1  # 暂停1秒    ((count--))doneecho "时间到!"

循环控制语句

在循环中,你还可以使用两个关键字来控制流程:

  • break:立即退出整个循环。
  • continue:跳过本次循环剩余部分,进入下一次循环。

示例:使用 continue 跳过偶数

for i in {1..10}do    if [ $((i % 2)) -eq 0 ]; then        continue  # 跳过偶数    fi    echo "奇数: $i"done

实用技巧与注意事项

  • 变量引用时建议使用 $((...)) 进行算术运算。
  • 字符串比较用 =!=,数值比较用 -eq-gt 等。
  • 在脚本开头加上 #!/bin/bash 可确保使用Bash解释器。
  • 调试脚本时可加 set -x 查看每一步执行过程。

总结

通过掌握 for循环while循环 的基本用法,你可以轻松编写出高效、自动化的Shell脚本。无论是批量处理文件、定时任务,还是系统监控,bash循环控制都是不可或缺的工具。多练习几个小例子,你会发现Shell脚本其实并不难!

小提示:将你的脚本保存为.sh文件,并用chmod +x script.sh赋予执行权限,然后通过./script.sh运行。

来源:https://www.vps5.cn/

相关文章
|
2天前
|
Ubuntu 网络协议 Linux
Linux网络接口配置(从零开始掌握网络设置)
本教程来源https://www.vps5.cn/详解Linux网络配置核心方法,涵盖网络接口概念、查看状态、临时与永久IP设置(如Netplan配置),并提供常见问题排查技巧,助你掌握ip命令等工具,轻松应对服务器管理与网络调试。
|
16天前
|
IDE Java 开发工具
Mac 安装 JDK 8u281(JDK-8u281-1.dmg)详细步骤(附安装包)
下载JDK-8u281安装包并双击DMG文件,打开PKG安装程序,按提示完成安装。安装过程中需同意协议并输入电脑密码。安装后可通过终端输入“java -version”检查版本,显示1.8.0_281即表示成功。适用于Mac系统开发环境配置。
|
1月前
|
人工智能 IDE 数据挖掘
Python安装 + 使用教程
本文介绍了Python的起源、应用领域及Windows系统下的安装与配置方法。涵盖办公自动化、数据分析、人工智能等实用场景,并详细演示下载、安装、环境变量设置及常见问题解决,帮助初学者快速上手Python编程。
587 3
|
2月前
|
缓存 Windows
彻底卸载软件且不留痕!卸载+清理+启动项优化,彻底清理残留信息
一款小巧高效的卸载工具,仅3.85M,主打彻底清理软件残留文件、注册表、服务等。支持强制卸载、应用商店程序移除、浏览器扩展管理、注册表清理、垃圾文件扫描及空文件夹清理,并提供文件粉碎、快捷方式修复等功能,界面简洁且可换肤,是系统清理的得力助手。
230 6
|
2月前
|
云栖大会
阿里云产品九月刊来啦
2025云栖大会重磅合集,阿里云各产品重大升级发布
163 23
|
1月前
|
人工智能 数据可视化 前端开发
震惊,Github开源,真正让程序员效率提升 90%的AI辅助工具来啦!!!
Claude Code Viewer 是一款开源浏览器工具,将 Claude Code 的终端日志可视化,支持会话管理、Git Diff 查看、文件预览与定时任务,实现远程交互与多项目导航,提升 AI 编程效率。
368 0
|
12天前
|
供应链 数据可视化 Java
云端SaaS诊所管理系统(java源码),实现挂号、开方、收费、发药全流程管理
云诊所SaaS系统,集患者管理、预约挂号、电子处方、智能诊断、药房进销存、财务统计于一体,支持模板调用、库存预警、多支付方式,实现诊疗全流程数字化管理,提升基层医疗效率。
87 13
|
18天前
|
供应链 JavaScript 安全
B/S云门诊系统源码,java云诊所源码,基于Spring Boot、Vue.js构建
云端SaaS架构云门诊系统,基于Spring Boot+Vue开发,支持医保结算,集成预约挂号、诊疗、收费、库存、会员管理等功能,适用于各类基层医疗机构,可打包为C/S桌面应用,支持外接设备免安装配置。
90 10
|
26天前
|
SQL 人工智能 自然语言处理
Spring Boot + GPT:我做了一个能自己写 SQL 的后端系统
本文介绍如何基于Spring Boot与GPT(或国产大模型如通义千问、DeepSeek)构建智能后端系统,实现自然语言自动生成SQL。系统采用分层架构,集成AI语义理解、SQL安全验证与执行功能,提升开发效率并降低数据查询门槛,兼具安全性与可扩展性。
149 7
|
26天前
|
SQL Oracle 关系型数据库
Oracle 数据库数据操作:精通 INSERT, UPDATE, DELETE
在Oracle里,增加数据用INSERT,修改用UPDATE,删除则用DELETE。进行修改和删除时,建议总是带上WHERE条件来指定范围,这样可以确保操作的准确性