Shell编程之循环语句

循环语句


一、for语句

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

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

结构

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

在这里插入图片描述

  1. 根据人事部门给出的员工姓名的拼音列表,在Linux 服务器中添加相应的用户账号,初始密码均设置为"123456"。

在这里插入图片描述
2. 若某些员工离职,把必要文件备份过后,就需要把一些员工连带他的宿主目求删除。

创建离职员工名单

[root@localhost ~]# vi user1.txt 
[root@localhost ~]#cat user1.txt 
dengchao 
zhangjie

在这里插入图片描述

  1. 根据包含公司各服务器 IP地址的列表文件,检查其中各主机的 ping 连通性,输出各主机是否启动、关闭。其中,服务器的数量并不固定,各服务器的 IP地址之间也无特殊规律。

在这里插入图片描述
4.根据列表给定的加班用户,给相应的用户工资加100元。

一天加班时间:
在这里插入图片描述
用位置变量计算:

在这里插入图片描述


二、while语句

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

while 条件测试操作
do 
  命令序列
done

在这里插入图片描述
示例:
1.若要添加 10 个用户,名称依次为 stu1、stu2、…、stu10。

在这里插入图片描述
若要把添加的这些用户再删除的话,也可以用while循环去做。
在这里插入图片描述
2、由脚本预先生成一个随机的价格数目(0~999)作为实际价格,判断用户猜测的价格是否高出或低于实际价格,给出相应提示后再次要求用户猜测;一直到用户猜中实际价格为止,输出用户共猜测的次数、实际价格。
主要设许思路如下∶通过环境变量 RANDOM可获得一个小于 216的随机整数,计算其与1000的余数即可获得0~999 的随机价格;反复猜测操作可以通过以 true作为测试条件的 while 循环实现,当用户猜中实际价格时终止循环;判断猜测价格与实际价格的过程采用 if 语句实现,嵌套在 while 循环体内;使用变量来记录猜测次数。
在这里插入图片描述

使用 while_循环语句时,可以根据特定的条件反复执行一个命令序列,直到该条件不再满足时为止。当测试条件不再成立,从而结束循环。


for和while的区别

for循环语句非常适用于列表对象无规律,且列表来源已固定(如某个列表文件)的场合。而对于要求控制循环次数、操作对象按数字顺序编号、按特定条件执行重复操作等情况,则更适合使用另外一种循环——while语句。


三、until语句

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

until 条件测试操作
do   
  命令序列
done

在这里插入图片描述
1、计算1~50的和
算法∶计算从 1 到 50的和,从1开始相加,采用循环的方式,每次循环后加1,将得到的值加入计算的和中数字运算采用的是 let 方式,直到加到 50 为止。
在这里插入图片描述

在这里插入图片描述


while和until的区别

until循环与while循环类似,while循环能实现的脚本 until同样也可以实现,但区别是while循环在条件为真时继续执行循环,而until则是在条件为假时执行循环。


总结∶

  • 条件需要你预先已经知道会出现哪些情况,根据情况作出措施。
  • 循环的主体是一些重复性的操作,当然了,重复性的操作也有循环条件的,这个循环条件是可以后给的。
  • 在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命念想园。例茹,根据通讯录中的姓名列表创建系统账号,根据服务器清单检查各主机的存活状态,根据IP地址黑名单设置拒绝访问的防火墙策略等。
  • 当面对各种列表重复任务时,使用简单的 if 语句已经难以满足要求,而顺序编写全部代码更是显得异常烦琐、困难重重。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值