shell循环语句

循环介绍

循环:一种控制流程的结构,用于重复执行一段代码。是计算机编程中非常重要的一种结构,其目的是为了简化代码编写,提高代码的重复利用率,以及提高程序的效率。

遍历:一种数据操作的过程,用于访问并处理数据结构中的每个元素。在某些情况下,循环和遍历可以结合使用,以便在循环中遍历数据结构并对其进行操作。

循环的优点

重复执行代码:通过使用循环,可以在程序中重复执行一段代码,从而避免代码的重复编写,减少程序代码量,提高程序的可读性和可维护性。
简化程序逻辑:使用循环可以使程序逻辑更加简洁明了,提高程序的可读性和可理解性,降低代码出错的可能性。
提高代码的重复利用率:通过将重复发代码封装在循环结构中,可以提高代码的重复利用率,减少代码冗余。
提高程序的效率:循环可以让程序自动化地执行重复任务,从而减少人工干预的次数,提高程序的效率和性能。
for语句结构

for 变量名称(注意是名称不是变量$等) [ in 名称范围 ] (可以不写)
do
   执行内容    ###若满足循环则做什么动作
done         ###for循环结束标志

 for ((i=0;i<=5;i++)) #类c语言格式
 
for i in {1..5}      #一般格式
 
for ((;;))           #死循环格式

 for循环流程

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

①批量添加用户

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

Ⅱ.初始密码均设为123456

Ⅲ.验证脚本

#!/bin/bash
for i in $(cat /home/user.txt )
do
 useradd $i
 echo "123456" | passwd --stdin $i
done

②根据IP地址检查主机状态

Ⅰ.IP地址存放在ip.txt文件中,每行一个

Ⅱ.使用ping命令检测个主机的连通性

vim yonghu.sh
 
for i in $(cat /opt/ip.txt)             #变量 i 参数来自 ip.txt 文件
do
 ping -c3 -W2 $i &> /dev/null           #指定ping三次,超时连接两次后退出。
 if [ $? = 0 ]
 then
   echo "$i" >> /opt/host.txt         #将变量i 重定向写入 host.txt 文件
   echo "$i连接成功" 
else
   echo "$i连接失败"
 fi
done

 

常用的转义字符

echo -n 表示不换行输出
echo -e输出转义字符,将转义后的内容输出到屏幕上
###只有加了-e才能执行转义符

跳出循环

表示满足continue条件时跳出循环,但是不影响后续循环执行,它的作用是在循环内部跳过本次循环并继续下一次循环
continue 2 是一个 Shell 中的控制结构,它的作用是在循环内部跳过本次循环并继续下一次循环,而且会跳过两层循环,即在两层循环内部执行
在嵌套循环中,如果我们使用 continue 2 命令,它将跳过包含它的内层循环和外层循环的迭代,并继续执行下一次外层循环的迭代
 

#!/bin/bash
for j in {1..3}
do
 for i in {1..5}                    #for循环5次从1到5
 do
   if [ $i -eq 2 ]                   #if判断语句,若$i=3则执行then的内容
    then
    continue                     #结束if语句
    fi
     echo "$i"                    #每执行一次就输出一次$i
 done
done

 

打破循环
在某个循环中遇到break直接结束此次循环,但是不影响外边嵌套的循环
break [数字] 结束数字中的几次循环,若为2则结束自己所在循环和外边嵌套的一层循环,
若为3则结束自己所在循环和外边嵌套的2层循环
break 命令并不控制循环次数,它是用于控制循环流程的
当 break 命令执行时,它会立即跳出当前的循环并继续执行循环后面的代码

 

while循环语句

while循环满足条件执行,不满足不执行

用于不知道循环次数,需要主动结束循环或达到条件结束循环

while [判断条件]
do
执行动作   while循环执行动作
done      while循环结束标志

while true  死循环

实验:创建用户

 实验二: 猜数字

 

 

untli循环语句

until循环通常用于当判断条件不成立时才进行循环,一旦判断条件成立,就终止循环,

比如等待某个进程退出、等待某个文件被创建等等

格式:
until [条件测试操作]
do
    判断式/命令序列
done

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值