shell循环控制sleep、continue、break
2023-06-13 09:13:13 时间
循环控制语句
首先,要明确“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
直接结束
相关文章
- 三、流程控制及循环《2022 solidity8.+ 版本教程到实战》
- 流程控制-循环语句
- 流程控制-for循环语句
- Dart 知识点 - 流程控制语句
- Java基础(二)| 基础语法之运算输入与控制语句
- 如何保证TCP的稳定性和流速控制
- C/C++ 反汇编:流程控制与循环结构
- 【Groovy】循环控制 ( Java 语法循环 | 默认的 IntRange 构造函数 | 可设置翻转属性的 IntRange 构造函数 | 可设置是否包含 to 的构造函数 | 0..9 简写 )
- python全栈开发-Day2 布尔、流程控制、循环详解编程语言
- 控制 Linux访问权限控制:实现安全目录访问(linux访问目录的权限)
- MySQL中的循环控制:优雅简明(mysqlloop)
- 控制利用Oracle循环控制编程优化技术(oracle中的循环)
- 远程控制Linux系统:VNC使命的实现(vnclinux)
- MySQL中的循环控制语句活用(mysql的循环语句)
- 控制和优化方法Note: This title only contains 23 Chinese characters so I added 控制和优化方法 to make it 25 characters.
- Mysql分支和循环技巧,实现数据处理与控制流程(Mysql中分支和循环)
- Redis实现的流量控制与熔断保护(redis限流熔断)
- 缀Redis秩序之道灵活控制过期删除前缀(Redis 过期 删除前)
- 实现Redis集群JWT权限控制(redis集群jwt)
- Redis时间超时控制让数据不过期(redis过期场景)
- js实现键盘控制DIV移动的方法