肤白貌美大长腿都在学shell脚本(while,until循环)循环控制语句continue、break、exit

肤白貌美大长腿都在学shell脚本(while,until循环)循环控制语句continue、break、exit

一、while语句结构

while循环一般用于有条件判断的循环,若判断条件为真,则进入循环,当条件为假就掏出循环。

语法结构为:while 表达式 +do +comand done为结尾

例一:

#!/bin/bash
i=1                   #先定一个变量
while [ $i -le 5 ]    #开启一个while循环,当1小于等于5的时候
do                    #则
 echo $i              #输出i值
 let i++              #要改变$i的值,不然就会变为死循环(有兴趣的可以试一下)
                      #还有一种写法  i=$[$i+1]
done
echo "最后i的值为:$i"

image-20220703115926188

输出结果:

image-20220703120202665

例二:输出1-100之间不能被3整除的数字

#!/bin/bash
i=1                    #首先定一个变量
while [ $i -le 100 ]   #开启while循环,当1小于等于100成立并开启循环
do
if [[ $i%3 -ne 0 ]]    #加入if判断,假如i值除以3不等于0
then echo "$i"         #则输出i值
fi
let i++                #i+1
done

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wtiXWyUM-1656854149659)(C:\Users\LIU\AppData\Roaming\Typora\typora-user-images\image-20220703124720591.png)]

image-20220703125350835

例三:打印1-100的和

#!/bin/bash
i=1
sum=0
while [ $i -le 100]
do
let sum=$i+$sum
let i++
done 
echo $sum

输出结果:

image-20220703125801676

例四:开启httpd服务脚本

#!/bin/bash
i=$1                    #定义变量
case $i in              #开启case循环
h)                      #选项
yum install -y httpd    #安装httpd服务
 if [ $? -eq 0 ];then   #当返回值等于0时,那么
  echo "安装成功,正在开启服务"
 systemctl start httpd
  if [ $? -eq 0 ];then   #加入if判断
   echo"开启服务成功"
  else
   echo"启动失败"
   fi
   else
   echo"安装失败"
   fi
   ;;
   esac

执行结果:

image-20220703170522284

例五:监听服务器脚本

#!/bin/bash
while ps aux | grep httpd | grep -v grep &> /dev/null  #while循环过滤进程,如果能过滤到进程则输出
do
echo "httpd 正在运行中" >> /opt/lianxi/zhuru.log       #日志
sleep 2        #保持不要频发过滤                                done
echo "httpd 不在运行" >> /opt/lianxi/zhuru.log

执行结果: image-20220703171549727

二、while死循环

死循环如果不加两个关键字就会一直循环

例一:猜数字,猜不到就一直猜

#!/bin/bash
num=10                   #定义你要猜的数字
while true                #开启死循环
do
read -p "请输入数字: " shu
if [ $shu -eq $num ];then
 echo "猜中"
 break                   #关闭一个循环
 elif [ $shu -gt $num ];then
 echo "你猜的数大了"
 elif [ $shu -lt $num ];then
 echo "你猜的数小了"
fi
done

输出结果:

image-20220703174034319

三、在shell脚本中exit、break与continue的区别

continue:提前结束本轮循环,而进入下一轮循环;

break:结束整个循环;

exit:退出shell脚本,不再执行exit下的任何命令;

四、until循环

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

其语法结构为 until +表达式 +do +command +done结尾

例一:用until写出脚本计算1-50的和1275

#!/bin/bash
i=0;s=0
until [ $i -eq 51 ]
do
let s+=i
let i++
done
echo $s

此输出结果为:

image-20220703191608501

死循环结构为 untile false开始死循环

五、循环控制语句

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

一、continue

继续,但不会执行循环体内下面的代码了,开始重新开始下一次循环

#!/bin/bash
for ((i=1;i<=5;i++))               #定义变量进入for循环
do
  if [ $i -eq 3 ];then
  continue                         #进入下一循环
  else
  echo $i
  fi
done

image-20220703192756459

二、break

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

#!/bin/bash
for ((i=1;i<=10;i++))
do
  if [ $i -eq 8 ];then
  break
  else
  echo $i
  fi
done

image-20220703194128951

三、exit

直接跳出程序,后面可跟状态返回码如exit 1等

#!/bin/bash
for i in {1..5}
do
if [ $i -eq 3 ];then
   exit 100
else
   echo $i
fi
done
echo hi

fi
done


[外链图片转存中...(img-pC195HBE-1656854149663)]

三、exit

直接跳出程序,后面可跟状态返回码如exit  1等

#!/bin/bash
for i in {1…5}
do
if [ $i -eq 3 ];then
exit 100
else
echo $i
fi
done
echo hi


![image-20220703195044107](https://img-blog.csdnimg.cn/img_convert/3ce32c6f11737bb97e3e7e7d55eecf69.png)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值