shell编程之循环语句(for、while、until)

网友投稿 317 2022-11-02

shell编程之循环语句(for、while、until)

本章结构

循环语句

for循环语句

while循环语句

untli循环语句

shell函数

shell数组

一、使用for循环语句

for循环

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

for 变量名 in 取值列表                             for 收件人 in  邮件地址列表

do                                                                 do

命令序列                                                               发送邮件

done                                                            done

解释:假设图中取值n的数值等于6,变量为a=0可是a<=6,没错运行脚本都会使a+1也就是a++

第一次运行a=1不满足条件会进入for循环,直到a=6是结束for循环

解析案例:

do开始 ,echo输出变量$i , done 结束

结果显示到6时循环就结束了

案例2:通过for循环简单的做一个打印hello world

案例3:每隔2个数去打印,此为偶数打印

案例4

案例5:通过for循环批量创建liupeng这个用户加上后缀1~9,并修改密码

案例6:方法二批量添加用户(用户名可以自己选)

1.用户名存放在users.txt文件中,每行一个

2.初始密码均为123456

3.验证脚本

运行一次不显示是否成功,可再次运行会显示用户已存在

验证用户创建成功,通过cu进入用户验证密码是否设置成功

案例7:根据IP地址检查主机状态

IP地址存放在user.txt文件中,每行一个(文件名称可以自行制作)

使用ping命令检测各主机的连通性

由于我只开了一个虚拟机18,所以其他的down掉了

案例7:密码验证三次错误

案例8:商场会员抽奖,

解释一下取值范围为啥4+1,因为是从0.1.2.3开始的4位数

[root@ZX ~]# expr $[RANDOM%4]     #可以去试下不+1不会出现4这个说

0

[root@ZX ~]# expr $[RANDOM%4+1]      #加1后相当于4里随机的数加1

1

这是为抽奖准备的名单

案例9:打印小星星

可以将其中的变量固定(start改成任意数字)

案例10 九九乘法表。 想要将结果9开头只要将1换成9,9换成1 在加上..-1

二、while语句的结构

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

while 条件测试操作                           while 未猜中正确价格

do                                                    do

命令序列                                              反复猜测商品价格

done                                                 done

案例1:设为5 在最后的值为6是跳出循环

小优化

可以看出在值为6是跳出循环

案例2 输出100不能被整除的数

案例3

sleep 2 是睡眠两秒

案例4猜数字

while语句应用示例1、例2

批量添加用户

1)用户名称以wufan开头,按数字顺序进行编号

2)一共添加20个用户,即stu1、stu2、......、stu20

3)初始密码均为123456

示例2

猜商品价格游戏

1)通过变量RANDOM获得随机数

2)提示用户猜测并记录次数,猜中后退出循环

案例3:

continue 语句和 break 语句的区别是,continue 语句只结束本次循环,而不是终止整个循环。break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。而且,continue和break 只能在循环语句中使用,即只能在 for、while 和 do…while 中使用,除此之外 continue 不能在任何语句中使用。

跳过5但不会结束

到5就结束整个循环

如果在continue前面加上2就会停止两次循环

满足条件跳过两次

此为continue没加2的结果满足后只跳过一次

定义商城

三、until 循环语句结构

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

until语句应用示例

示例1

计算1-50的和值

通过循环累加的方式计算1~50的和值

#!/bin/bashusername=$1if [ $# -lt 1 ];then echo "Usage: `bashname $0` []" exit 1fiif grep "^$username: " /etc/passwd >/dev/null;then:else echo "用户存在" exit 1fiuntil who|grep "$username" > /dev/nulldo echo "用户不存在" sleep 5donemes=$*echo $mes | write $username

四、编写脚本的思路(基本)

1、明确脚本的功能

实现功能

比如:需求创建测试用户,多个可以用for循环写、while循环、if多分支

注:知道需求含义来定义脚本功能

2、编写脚本是会使用到哪些命令?

useradd passwd for let ceho

3、把变化的数据使用变量表示

1)固定长的定义变量、经常调用参数课设变量

2)变化的定义变量

4、选择合适的流程控制语句

循环 双分支 多分支 case等一下控制语句

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot使用minio及配置代码
下一篇:用于电容传感器接口的模拟前端元件
相关文章

 发表评论

暂时没有评论,来抢沙发吧~