【shell】shell脚本实战-循环的控制
前言
在我们使用循环语句进行循环的过程中,有时候需要在未达到循环结束条件时强制跳出循环,那么Shell给我们提供了四个命令来控制循环语句
continue 跳过当次循环
break 跳过整个循环
exit 退出脚本
return 退出函数
break和continue的区别
区别:
Break:跳出整个循环
Continue:跳过本次循环,进行下次循环
概述:
break概述:跳出当前整个循环或结束当前循环,在for、while等循环语句中,用于跳出当前所在的循环体,执行循环体之后的语句,后面如果什么也不加,表示跳出当前循环等价于break 1,也可以在后面加数字,假设break 3表示跳出第三层循环
continue概述:忽略本次循环剩余的代码,直接进行下一次循环;在for、while等循环语句中,用于跳出当前所在的循环体,执行循环体之后的语句,如果后面加的数字是1,表示忽略本次条件循环,如果是2的话,忽略下来2次条件的循环
三种方式的对比案例
在这里因为还没有学习到函数,所以我们先对比三种break,continue,exit对脚本的影响
1. break 跳过整个循环
break脚本案例:
[root@ecs-c13b ~]# cat break.sh
#!/bin/bash
for n in 1 2 3 4 5
do if [ $n -eq 3 ] then break fi echo $n
done
echo ok
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
执行结果
[root@ecs-c13b ~]# bash break.sh
1
2
ok
- 1
- 2
- 3
- 4
可以看到,执行到等于3的时候,直接就结束了,跳出循环,输出了ok
2. continue跳过当次循环
continue脚本案例:
[root@ecs-c13b ~]# cat con.sh
#!/bin/bash
for n in 1 2 3 4 5
do if [ $n -eq 3 ] then continue fi echo $n
done
echo ok
执行结果:
[root@ecs-c13b ~]# bash con.sh
1
2
4
5
ok
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
注: 可以看到,用了continue,只是在等于3的时候,没有输出3,跳过了一次循环,后面又继续运行。
3. exit退出脚本
[root@ecs-c13b ~]# cat ex.sh
#!/bin/bash
for n in 1 2 3 4 5
do if [ $n -eq 3 ] then exit fi echo $n
done
echo ok
直接退出了循环:
[root@ecs-c13b ~]# bash ex.sh
1
2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
实战案例
- 自动化脚本菜单页面
脚本案例:
[root@ecs-c13b ~]# cat zd.sh
#! /bin/sh
while true
do
echo "*******************************"
echo "Please select your operation:"
echo " 1 Copy"
echo " 2 Delete"
echo " 3 Backup"
echo " 4 Quit"
echo "*******************************"
read choise
case $choise in 1)
continue #这里加了continue后,后面的echo命令就不执行了
echo "your selection is Copy"
;; 2) echo "your selection is Delete"
;; 3)
echo "your selection is Backup"
;; 4)
echo "Exit ..."
break #跳出循环体
;; *)
echo "invalide selection,please try again"
esac
done
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
运行结果展示:
[root@ecs-c13b ~]# bash zd.sh
*******************************
Please select your operation:
1 Copy
2 Delete
3 Backup
4 Quit
*******************************
1 #选择1的时候遇到continue跳过循环,没有执行后面的内容,但也没有结束循环
*******************************
Please select your operation:
1 Copy
2 Delete
3 Backup
4 Quit
*******************************
4## 选择4的时候遇到break,结束循环
Exit ...
[root@ecs-c13b ~]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
总结
循环体的控制,一共四个命令,在使用的过程中,要合理选择,遇到跳过某次循环选continue,遇到跳出循环选break, 结束循环使用exit。 在后面的练习中多多使用即可。
文章来源: zmedu.blog.csdn.net,作者:互联网老辛,版权归原作者所有,如需转载,请联系作者。
原文链接:zmedu.blog.csdn.net/article/details/107995857
- 点赞
- 收藏
- 关注作者
评论(0)