前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell循环控制sleep、continue、break

shell循环控制sleep、continue、break

作者头像
全栈程序员站长
发布2022-09-15 10:30:54
1.4K0
发布2022-09-15 10:30:54
举报
文章被收录于专栏:全栈程序员必看

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

循环控制语句

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

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

代码语言:javascript
复制
[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
代码语言:javascript
复制
[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

代码语言:javascript
复制
[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

执行代码

代码语言:javascript
复制
[root@localhost ~]# ./continue.sh 
0
1
2
3
4
6
7
8
9

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

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

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

执行代码

代码语言:javascript
复制
[root@localhost ~]# ./break.sh 
0
1
2
3
4
5

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

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

执行代码

代码语言:javascript
复制
[root@localhost ~]# ./for_break.sh 
请您输出一个大写字母:W
您输入的字母是:W
请您输出一个大写字母:E
您输入的字母是:E
请您输出一个大写字母:R
您输入的字母是:R
请您输出一个大写字母:Q
代码语言:javascript
复制
[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

执行代码

代码语言:javascript
复制
[root@localhost ~]# ./for_break.sh 
#loop 1
haha
#loop 2
haha
#loop 3
haha

break 2

代码语言:javascript
复制
[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

执行代码

代码语言:javascript
复制
[root@localhost ~]# ./for_break.sh 
#loop 1
haha
直接结束

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 循环控制语句
  • sleep N 脚本执行到该步休眠N秒
  • continue跳过循环中的某次循环
  • break跳出循环继续执行后续代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档