Shell编程之循环语句与函数(for、while)

简介: Shell编程之循环语句与函数(for、while)

前言

Shell作为一种脚本编程语言,包含循环、分支等其他程序控制结构,从而能够轻松完成更加复杂的工作。本文主要讲了for、while语句的具体用法。


一、for 循环语句

1.1 for 循环语句

使用 for 循环语句时,需要指定一个变量及可能的取值列表,针对每个不同的取值重复执行相同的命令序列,直到变量值用完退出循环。在这里,“取值列表”称为 for 语句的执行条件,其中包括多个属性相同的对象,需要预先指定(如通讯录、IP 黑名单)。


用法:


读取不同的变量值,用来逐个执行同一组命令


for循环经常使用在已经知道要进行多少次循环的场景


格式:


for 变量名 in 取值列表
do
命令序列
done

1.2for 语句的结构:

for语句执行过程的描述:

首先讲列表中的第一个取值赋给变量,并执行do…done 循环体中的命令序列;

然后讲列表中的第二个取值赋给变量,并执行循环体中的命令序列·······;

以此类推,直到列表中的所有取值用完,

最后跳至done语句,表示循环结束。


1.3演示:



或着 输出文字相当于循环六次



花括号{}和seq在for循环的应用:
for i in {1…50…2} 1-50的奇数
for i in {2…50…2} 1-50的偶数
for i in {10…1} 1-10倒序排列
for i in $(seq 10) 1-10正序排列
for i in $(seq 10 -1 1) 1-10倒序排列
for i in $(seq 1 2 10) 1-10的奇数,中间为步长
for i in $(seq 0 2 10) 1-10的偶数,中间为步长




不带列表循环执行时由用户指定参数和参数的个数决定的


for 变量名 
do
   command
done


[root@local ~]# . /11.sh   //没有给脚本传参所以执行了没有结果
[root@local ~]# . /11.sh a   //把a赋值给变量i,i有值了它就开始执行do..done了
hello



批量创建用户

根据ip地址列表检查主机状态

首先先写一个想要检查的IP地址序列.txt 用以以后调用


判断密码输入是否正确!


幸运会员抽奖






循环


for ((expr1;expr2;expr3))
do
       command
done
expr1:定义变量并赋初值
expr2:决定是否循环
expr3:决定循环变量如何改变,决定循环什么时候退出



嵌套循环星星的格式



九九乘法表


随机生成18位密码




二、while语法

2.1 语法结构

while循环一般用于有条件判断的循环,若判断条件为真,则进入循环,当条件为假就跳出循环
先定义一个变量
while 表达式(条件)
do
循环语句命令
done


2.2流程图

输出小于5的值


循环终止是因为i=6不满足条件,得出最后值为6


2.3演示

列出50以内能被3整除的数



三、until 循环语句结构

3.1用法:

重复测试某个条件,只要条件不成立则反复执行


只要while后面的命令退出状态为0,while循环就一直执行下去,until命令与while命令相似,唯一的区别在于,只要until后面的命令退出不为0,until循环就一直执行下去,也就是说,使用until语句重复执行一段代码直到条件为真为止,与while类似


语法结构示意图



3.2示例

计算0-50的和



总结

while语句可以根据特定的条件重复执行命令,更适合具有规律的循环操作

for语句可根据一致的列表对象执行命令序列,更适合无规律的操作


相关文章
|
4天前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
21 12
|
3天前
|
Shell Linux
Shell 编程 编写hello word
Shell 编写hello word
24 5
|
18天前
|
Shell KVM 虚拟化
Shell 数组编程
【8月更文挑战第22天】 Shell 数组编程
37 10
|
21天前
|
Shell 数据处理 C++
【震撼揭秘】Python正则VS Shell正则:一场跨越编程边界的史诗级对决!你绝不能错过的精彩较量,带你领略文本处理的极致魅力!
【8月更文挑战第19天】正则表达式是文本处理的强大工具,在Python与Shell中有广泛应用。两者虽语法各异,但仍共享许多基本元素,如`.`、`*`及`[]`等。Python通过`re`模块支持丰富的功能,如非捕获组及命名捕获组;而Shell则依赖`grep`、`sed`和`awk`等命令实现类似效果。尽管Python提供了更高级的特性和函数,Shell在处理文本文件方面仍有其独特优势。选择合适工具需根据具体需求和个人偏好决定。
22 1
|
1月前
|
监控 Shell Linux
探索Linux操作系统下的Shell编程之魅力
【8月更文挑战第4天】本文旨在通过一系列精心设计的示例和分析,揭示在Linux环境下进行Shell编程的独特之处及其强大功能。我们将从基础语法入手,逐步深入到脚本的编写与执行,最终通过实际代码案例展现Shell编程在日常系统管理和自动化任务中的应用价值。文章不仅适合初学者构建扎实的基础,同时也为有一定经验的开发者提供进阶技巧。
37 11
|
18天前
|
Shell Linux 程序员
在Linux中, 什么是shell函数?如何使用它们?
在Linux中, 什么是shell函数?如何使用它们?
|
2月前
|
Shell 测试技术 Linux
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
34 3
|
2月前
|
JavaScript 前端开发 Shell
Shell 脚本编程保姆级教程(上)
Shell 脚本编程保姆级教程(上)
|
2月前
|
Shell Linux Perl
shell 编程中 awk ,wc ,$0,$1 等 命令的使用总结
shell 编程中 awk ,wc ,$0,$1 等 命令的使用总结
48 0
|
2月前
|
Shell Linux
Shell 脚本编程学习
Shell 脚本编程学习
28 0