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语句可根据一致的列表对象执行命令序列,更适合无规律的操作

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搞什么滚去学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值