Shell 循环语句:重复任务的自动化利器

简介: 在Shell脚本中,循环语句如`while`和`for`是自动化任务的关键。`while`循环在条件满足时执行,例如计算1到100的和;`for-in`循环遍历列表,可用于迭代指定数值或命令输出,如求1到100的和。`select-in`循环提供交互式菜单,增强脚本用户体验。理解并运用这些循环能提升脚本效率和可读性。现在,动手试试吧!

在日复一日的脚本编程中,循环语句无疑是我们最好的朋友。通过循环,我们可以执行重复的任务,无论是遍历文件列表,处理文本数据,还是简单的数学运算。

今天,我们就来聊聊 shell 脚本中的几种循环语句,它们将如何帮助我们简化编程任务。

while 循环:当条件满足时循环

while 循环非常有用,基本语法是当条件为真(即返回值为 0)时,就执行循环体内的语句。使用它可以执行诸如从 1 加到 100 这样简单但有趣的任务。

例子:实现 1 到 100 的求和

#!/bin/bash

i=1
sum=0

while ((i <= 100))
do
  ((sum += i))
  ((i++))
done

echo "The sum is ===> $sum"
# 输出:The sum is ===> 5050

例子:实现一个简单的加法计算器

#!/bin/bash

sum=0

echo '输入数字,进行加法计算(按住 Ctrl + D 组合键获取结果)'

while read n
do
  ((sum += n))
done

echo "The sum is ====> $sum"

在这两个例子中,我们可以看到 while 循环如何在满足条件的情况下反复执行,直到条件不再成立。特别是在第二个例子中,我们利用了 read 命令读取用户输入,这在脚本交互中非常常见。

for-in 循环:遍历列表元素

for-in 循环的用法与 Python 中的非常相似,用于遍历列表中的每个元素。这种方式编写的代码可读性强,易于理解。

直接给出具体的值作为列表

#!/bin/bash

sum=0

for n in 1 2 3 4 5 6
do
  echo $n
  ((sum += n))
done

echo 'The sum is '$sum
# 输出分别为 1 2 3 4 5 6 和 The sum is 21

给出一个取值范围作为列表

#!/bin/bash

sum=0
for n in {
   1..100}
do
  ((sum += n))
done

echo "The result is ${sum}"
# 输出:The result is 5050

使用命令的执行结果作为列表

#!/bin/bash

for filename in $(ls *.sh)
do
  echo "当前目录下所有的以 .sh 为后缀的文件为 ==> ${filename}"
done

在这些示例中,我们看到 for-in 循环如何通过直接列出元素、指定范囹、甚至使用命令的输出作为列表来实现强大的遍历功能。

select-in 循环:增强脚本交互性

select-in 循环是脚本中用于交互的强大工具,它会显示一个带编号的菜单,用户通过输入编号来进行选择,进而执行不同的功能。

#!/bin/bash

echo '你喜欢哪种运动?'

select sport in '足球' '篮球' '乒乓球' '看电视'
do
  echo "你选择了 $sport"
  break # 加上 break 退出循环
done

通过 select-in 循环,我们可以轻松地构建用户友好的菜单系统,使得脚本的交互性大大增强。

在编写 shell 脚本时,正确选择循环类型对于提高代码的可读性和可维护性非常重要。

通过这篇文章的介绍,相信你已经对三种不同的循环有了初步的了解,并能够在实际编程中灵活应用它们。接下来,就是在你自己的脚本项目中实践和探索的时候了!

相关文章
|
8天前
|
运维 Prometheus 监控
自动化运维的魔法:使用Python脚本简化日常任务
【8月更文挑战第50天】在数字化时代的浪潮中,自动化运维成为提升效率、减少人为错误的利器。本文将通过一个实际案例,展示如何利用Python脚本实现自动化部署和监控,从而让运维工作变得更加轻松和高效。我们将一起探索代码的力量,解锁自动化运维的神秘面纱,让你的工作环境焕然一新。
127 81
|
3天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【9月更文挑战第23天】在本文中,我们将探索如何通过编写Python脚本来自动化常见的系统管理任务,从而提升效率并减少人为错误。文章将介绍基础的Python编程概念、实用的库函数,以及如何将这些知识应用于创建有用的自动化工具。无论你是新手还是有经验的系统管理员,这篇文章都将为你提供有价值的见解和技巧,帮助你在日常工作中实现自动化。
|
6天前
|
运维 监控 安全
自动化运维:使用Python脚本简化日常任务
【9月更文挑战第21天】在快速迭代的软件开发环境中,运维工作往往因为重复性高、易出错而被诟病。本文将介绍如何通过编写简单的Python脚本来自动化这些日常任务,从而提升效率和减少错误。我们将以实际案例为基础,展示如何从零开始构建一个自动化脚本,并解释其背后的原理。文章旨在启发读者思考如何利用编程技能来解决工作中的实际问题,进而探索技术与日常工作流程结合的可能性。
|
7天前
|
运维 监控 安全
自动化运维:使用Ansible简化日常任务
【9月更文挑战第19天】在现代IT架构中,自动化运维是提升效率和减少人为错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化日常运维任务,包括安装软件、配置系统和应用部署等。通过实际的代码示例,我们将展示如何编写简单的Ansible playbook来实现这些任务,并讨论其在真实场景中的应用价值。
41 5
|
5天前
|
存储 运维 监控
自动化运维的崛起:如何利用脚本简化日常任务
【9月更文挑战第21天】在快速发展的IT行业中,自动化运维不再是可选项,而是提升效率、减少人为错误的必由之路。本文将深入探讨自动化运维的重要性,并通过一个实际的脚本示例,展示如何将日常重复的运维任务自动化,从而释放运维人员的时间,让他们专注于更有价值的工作。
|
14天前
|
运维 监控 Linux
自动化运维的魔法:如何用Python脚本简化日常任务
【9月更文挑战第13天】在数字化时代的浪潮中,自动化运维如同一股清流,为IT团队带来了效率和灵活性的双重提升。本文将深入探讨如何通过Python脚本实现日常运维任务的自动化,从而释放双手,让重复性工作变得轻松愉快。从环境搭建到实际案例分析,我们将一步步揭开自动化运维的神秘面纱,让你的运维之路更加顺畅。
|
24天前
|
运维 应用服务中间件 nginx
自动化运维:使用Ansible简化日常任务
【9月更文挑战第2天】在快速迭代的软件开发周期中,高效可靠的运维成为项目成功的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化日常运维任务,从基础概念到实战应用,带你一步步构建自动化运维流程,解锁更高效的工作方式。
|
25天前
|
运维 Linux 测试技术
自动化运维:使用Python脚本简化日常任务
【8月更文挑战第34天】在快节奏的IT环境中,自动化运维成为提升效率、降低错误率的关键。本文以Python脚本为例,展示如何通过编写简单的脚本来自动化日常运维任务,如批量更改文件权限、自动备份数据等。文章不仅提供代码示例,还探讨了自动化运维带来的益处和实施时应注意的问题。
|
13天前
|
运维 监控 数据可视化
高效运维的秘密武器:自动化工具链的构建与实践在当今数字化时代,IT系统的复杂性和规模不断增加,使得传统的手动运维方式难以应对日益增长的业务需求。因此,构建一套高效的自动化工具链成为现代运维的重要任务。本文将深入探讨如何通过自动化工具链提升IT运维效率,确保系统稳定运行,并实现快速响应和故障恢复。
随着企业IT架构的不断扩展和复杂化,传统的手动运维已无法满足业务需求。自动化工具链的构建成为解决这一问题的关键。本文介绍了自动化工具链的核心概念、常用工具及其选择依据,并通过实际案例展示了自动化工具链在提升运维效率、减少人为错误、优化资源配置等方面的显著效果。从监控系统到自动化运维平台,再到持续集成/持续部署(CI/CD)的流程,我们将一步步揭示如何成功实施自动化工具链,助力企业实现高效、稳定、可靠的IT运维管理。
|
25天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【8月更文挑战第34天】在数字化时代,高效运维成为企业竞争力的关键。本篇文章将引导你通过Python脚本实现自动化运维,从而提升工作效率和减少人为错误。我们将从简单的文件备份脚本开始,逐步深入到系统监控和自动报告生成,让你的日常工作更加轻松。