shell循环控制sleep、continue、break

shell循环控制sleep、continue、break循环控制语句sleepN脚本执行到该步休眠N秒continue跳过循环中的某次循环break跳出循环继续执行后续代码首先,要明确“break”与“continue”的区别:break:在for循环使用break,则跳出这个循环,循环命令结束continue:使用后,在当前循环终止命令,直接进入下个循环而break与countine都是作用于单个循环,如果想要进行多层循环操作,则需要在后面加数字,如break2和continue2。sleepN脚本执行到该步休眠N秒[ro

大家好,又见面了,我是你们的朋友全栈君。

首先,要明确“break”与“continue”的区别:
break:在for循环使用break,则跳出这个循环,循环命令结束
continue: 使用后,在当前循环终止命令,直接进入下个循环
而break 与 countine 都是作用于单个循环,如果想要进行多层循环操作,则需要在后面加数字,如
break 2和continue 2。

sleep N 脚本执行到该步休眠N秒

[root@localhost ~]# cat sleep.sh 
#!/bin/bash
echo -n "倒计时:"
for i in `seq 9 -1 1`
 do
    echo -n -e "\b$i"
    sleep 1
done
echo

执行代码
[root@localhost ~]# ./sleep.sh 
倒计时:8

[root@localhost ~]# cat for_sleep.sh 
#!/bin/bash
#监控主机存活的脚本
for ((;;))
   do
     ping -c1 $1 &>/dev/null
     if [ $? -eq 0 ]
      then
        echo -e "`date +"%F %H:%M:%S"`: $1 is \033[32m up \033[0m"
      else
        echo -e "`date +"%F %H:%M:%S"`: $1 is \033[31m down \033[0m"
     fi
     #脚本节奏控制 生产环境建议一分钟及以上
     sleep 5
done

执行代码
在这里插入图片描述

continue跳过循环中的某次循环

这段代码,默认循环输出1–9,但是使用continue跳过输出5

[root@localhost ~]# cat continue.sh 
#!/bin/bash
for ((i=0;i<10;i++))
  do
    if [ $i -eq 5 ]
      then
      #本循环到此结束,可以开始下一次循环了
	continue
    else
         echo $i
    fi
done

执行代码

[root@localhost ~]# ./continue.sh 
0
1
2
3
4
6
7
8
9

break跳出循环继续执行后续代码

默认循环输出1–9,当输出到5的时候跳出循环

[root@localhost ~]# cat break.sh 
#!/bin/bash
for ((i=0;i<10;i++))
  do
    echo $i
    if [ $i -eq 5 ]
      then
	break
    fi
done

执行代码

[root@localhost ~]# ./break.sh 
0
1
2
3
4
5

要求用户输入一个字母,当输入Q的时候退出

[root@localhost ~]# cat for_break.sh 
#!/bin/bash
for ((;;))
  do
   read -p "请您输出一个大写字母:"  ch
   if [ $ch == 'Q' ]
   then 
     break
   else
     echo "您输入的字母是:"$ch
   fi
done 

执行代码

[root@localhost ~]# ./for_break.sh 
请您输出一个大写字母:W
您输入的字母是:W
请您输出一个大写字母:E
您输入的字母是:E
请您输出一个大写字母:R
您输入的字母是:R
请您输出一个大写字母:Q

[root@localhost ~]# vi for_break.sh
#!/bin/bash
for ((i=1;i<100;i++))
 do
  echo "#loop $i"
  for ((;;))
   do
     echo "haha"
     break 
   done
 sleep 3
done

执行代码

[root@localhost ~]# ./for_break.sh 
#loop 1
haha
#loop 2
haha
#loop 3
haha

break 2

[root@localhost ~]# vi for_break.sh
#!/bin/bash
for ((i=1;i<100;i++))
 do
  echo "#loop $i"
  for ((;;))
   do
     echo "haha"
     break  2
   done
 sleep 3
done

执行代码

[root@localhost ~]# ./for_break.sh 
#loop 1
haha
直接结束

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163941.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Oracle数据库备份与恢复方案

    Oracle数据库备份与恢复方案任何数据库在长期使用过程中,都会存在安全隐患。对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制。当任何人为的或是自然的灾难一旦出现,而导致数据库崩溃、物理介质损坏等,就可以及时恢复系统中重要的数据,不影响整个单位业务的运作。然而如果没有可靠的备份数据和恢复机制,就会带来系统瘫痪、工作停滞、经济损失等等不堪设想的后果。本文以ORACLE数据库为例,结

  • vue文件上传功能_vue如何自定义组件

    vue文件上传功能_vue如何自定义组件vue的文件上传组件upload,拥有支持多种格式文件上传,单文件多文件等都支持,许多项目现在都少不了文件上传功能,但是vue的upload组件如果直接引用,肯定也有一些不方便之处,有的时候需要传参数,需要手动触发上传方法,而不是选择了文件就上传,所以结合我项目实例,写一vue自定义文件上传的实现,包括前端和后台的处理以及参数的接收。一、先认识一下vue的upload组件,官网链接ht…

  • 指针函数和函数指针「建议收藏」

    指针函数和函数指针「建议收藏」概述指针函数和函数指针是C语言里两个比较绕的概念。但是不仅面试题爱考,实际应用中也比较广泛。很多人因为搞不清这两个概念,干脆就避而远之,我刚接触C语言的时候对这两个概念也比较模糊,特别是当指针函数、函数指针、函数指针变量、函数指针数组放在一块的时候,能把强迫症的人活活逼疯。其实如果理解了这些概念的本质,是不需要死记硬背的,理解起来也比较容易。指针函数指针函数:顾名思义,它的本质是一个函数…

  • OLED接口定义

    OLED接口定义总是忘记引脚定义,在这里记录下

  • origin柱状图怎么调整柱间距_origin断层柱状图

    origin柱状图怎么调整柱间距_origin断层柱状图minortickets指的是每个主刻度区间内显示几个次刻度!

  • c# 操作ad域用户

    c# 操作ad域用户测试环境:win2008r2服务器ad域服务器安装参考:https://www.cnblogs.com/cnjavahome/p/9029665.html密码策略修改参考:https://blog.csdn.net/zouyujie1127/article/details/40857675工作机dns设置为ad域服务器的ipusing:usingSystem.DirectoryServ…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号