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 脚本时,正确选择循环类型对于提高代码的可读性和可维护性非常重要。

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

相关文章
|
4天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
12 3
|
11天前
|
运维 监控 Linux
自动化运维:如何利用Python脚本优化日常任务##
【10月更文挑战第29天】在现代IT运维中,自动化已成为提升效率、减少人为错误的关键技术。本文将介绍如何通过Python脚本来简化和自动化日常的运维任务,从而让运维人员能够专注于更高层次的工作。从备份管理到系统监控,再到日志分析,我们将一步步展示如何编写实用的Python脚本来处理这些任务。 ##
|
1月前
|
运维 监控 网络安全
自动化运维的魔法:如何用Python简化日常任务
【10月更文挑战第9天】在数字时代的浪潮中,运维人员面临着日益增长的挑战。本文将揭示如何通过Python脚本实现自动化运维,从而提高效率、减少错误,并让运维工作变得更具创造性。我们将探索一些实用的代码示例,这些示例将展示如何自动化处理文件、监控系统性能以及管理服务器配置等常见运维任务。准备好让你的运维工作升级换代了吗?让我们开始吧!
|
1月前
|
运维 应用服务中间件 数据库
自动化运维:使用Ansible简化日常任务
【10月更文挑战第2天】在快速迭代的软件开发周期中,运维工作往往变得重复而繁琐。本文将介绍如何使用Ansible这一强大的自动化工具来简化日常任务,从而提升效率并减少人为错误。从基础配置到复杂部署,我们将一步步展示如何通过编写简单的Playbook来实现自动化管理。
67 3
|
1月前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
46 2
|
2月前
|
运维 Ubuntu 应用服务中间件
自动化运维:使用Ansible进行配置管理和任务自动化
【9月更文挑战第27天】在现代IT基础设施中,自动化运维是提高效率、减少人为错误和确保系统一致性的关键。本文将介绍如何使用Ansible,一个流行的开源IT自动化工具,来简化日常的运维任务。我们将探索Ansible的核心概念,包括它的架构、如何安装和使用它,以及一些实际的使用案例。无论你是新手还是有经验的运维专家,这篇文章都会提供有价值的见解和技巧,以帮助你更好地利用Ansible实现自动化。
|
2月前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【9月更文挑战第23天】在本文中,我们将探索如何通过编写Python脚本来自动化常见的系统管理任务,从而提升效率并减少人为错误。文章将介绍基础的Python编程概念、实用的库函数,以及如何将这些知识应用于创建有用的自动化工具。无论你是新手还是有经验的系统管理员,这篇文章都将为你提供有价值的见解和技巧,帮助你在日常工作中实现自动化。
|
2月前
|
运维 监控 Python
自动化运维:使用Python脚本实现日常任务
【9月更文挑战第24天】在现代的软件开发周期中,运维工作扮演着至关重要的角色。本文将介绍如何利用Python编写简单的自动化脚本,来优化和简化日常的运维任务。从备份数据到系统监控,Python的易用性和强大的库支持使其成为自动化运维的首选工具。跟随这篇文章,你将学习如何使用Python编写自己的自动化脚本,提高运维效率,减少人为错误,并最终提升整个开发流程的质量。
|
2月前
|
存储 运维 监控
自动化运维的崛起:如何利用脚本简化日常任务
【9月更文挑战第21天】在快速发展的IT行业中,自动化运维不再是可选项,而是提升效率、减少人为错误的必由之路。本文将深入探讨自动化运维的重要性,并通过一个实际的脚本示例,展示如何将日常重复的运维任务自动化,从而释放运维人员的时间,让他们专注于更有价值的工作。
|
1月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
61 4