shell编程之循环语句

一、循环语句

1、for循环基础

在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的 对象不一样,其他命令相同。

  • for循环语句的语句结构
for   变量名   in   取值列表
do
    命令系列
done

或者
for ((i=*;i<=*;1++))
do
    命令序列
done

基础小技巧花括号{}和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的偶数,中间为步长

1.实验

1.1将user.txt文本中的用户批量添加并设置密码

1101

1100

1.2算出从1-100的累加值

1102

1103

1.3从ipadds.txt文本中的地址判断出是否能ping通,能ping通的将ip地址输入到/opt/hosts

1104

1105

1.4用for循环输出一个9*9的矩形

1107

1106

1.5用for循环输出一个99乘法表

1109

1110

2、while 语句

2.1 while 语句说明

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

  • 适用while循环语句时,可以根据特定的条件反复执行一个命令序列,直到该条件不再满足时为止,但是脚本应用中,应该避免出现死循环的情况,否则后边的命令操作将无法执行
  • 循环体内的命令序列中应包括修改测试条件的语句,以便在适当的时候使测试条件不再成立,从而结束循环。

while 循环语句的语法结构如下

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

执行流程

  • 首先判断while后的条件测试操作结果,如果条件成立,则执行do … done 循环体中的命令序列
  • 执行完成之后,再进行判断测试条件,如果成立,则继续执行do …done循环体中的命令序列
  • 直到进行判断测试条件不成立,然后跳出while循环

2.2实验

2.2.1查找一个目录有多少文件

1200

1201

2.2.2计算机

1202

1203

2.2.3猜数

1204

1205

2.2.4商场购物

1206

1207

3、until语句

跟while相反,条件为假进入循环,条件为真退出循环

语法结构

until 表达式
do
    command
done

二、循环控制语句

for循环一般会搭配条件判断语句和流程控制语句一起执行,那么就会出现需要跳过循环和中止循环的情况,控制循环的命令有以下3个

1、continue

解释: 继续,但不会执行循环特内下面的代码,重新下一次循环

2、break

解释: 打断,马上停止本次循环,执行循环体外的代码

3、exit

解释: 接跳出程序,后面可跟状态返回码,如exit1 等等

注意:

如果在执行的脚本中,有exit退出当前程序的命令,如果使用source 进行执行该脚本的话,
那么将会退出终端程序,因为source命令是将脚本内的命令加载到系统环境中执行的,
那再执行exit的同时,也就是将exit命令在终端上进行执行,那么将会退出终端。

三、总结

循环语句有for、while和untile三种不格式的循环语句,前两种的执行效果一样,,用法上存在区别,until使用较少,与前面的语句刚好相反,注意break和continue和exit的使用方式。

  • break的使用方式: 跳出当前的循环,
  • continue的使用方式: 继续当前循环,此次循环后面将不会再输出,循环继续开始,
  • exit的使用方式: 退出当前终端,在执行的脚本的时候,尽量使用路径执行,如果使用source执行的话话,会把内部的变量加载到系统环境执行,那么将会退出终端程序。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值