linux shell中break和continue跳出循环
到目前为止,我们已经看到了,创建循环和使用循环来完成不同的任务。有时候,你需要停止循环或跳过循环迭代。
在本教程中,您将了解以下两个语句用于控制 Shell 循环:
break 语句
continue 语句
无限循环:
循环有限的生命,他们跳出来,一旦条件是 false 还是 false 取决于循环。
由于所需的条件是不符合一个循环可能永远持续下去。永远不会终止执行一个循环执行无限次数。出于这个原因,这样的循环被称为无限循环。
例子:
下面是一个简单的例子,使用while循环显示数字0到9:
#!/bin/sh a=10 while [ $a -lt 10 ]
do
echo $a
a=`expr $a + 1`
done
这个循环将永远持续下去,因为常是大于10,它永远不会成为小于10。所以这是无限循环真实的例子。
break语句:
break语句用于终止整个循环的执行,完成后所有行代码break语句的执行。然后,它逐级的代码跟在循环结束。
语法
将用于以下break语句退出循环:
break
将用于以下break语句退出循环:
break n
这里n指定的第n个封闭的循环退出。
例子:
下面是一个简单的例子展示了循环将终止只要一变为5:
#!/bin/sh a=0 while [ $a -lt 10 ]
do
echo $a
if [ $a -eq 5 ]
then
break
fi
a=`expr $a + 1`
done
这将产生以下结果:
0
1
2
3
4
5
下面是一个简单的嵌套循环的例子。这个脚本打破两个循环,如果的 var1 等于2 和 var2 等于0:
#!/bin/sh for var1 in 1 2 3
do
for var2 in 0 5
do
if [ $var1 -eq 2 -a $var2 -eq 0 ]
then
break 2
else
echo "$var1 $var2"
fi
done
done
这将产生以下结果。内循环有一个 break 命令与参数2。这表明,如果条件得到满足应该跳出外循环,并最终从内循环跳出。
1 0
1 5
continue 语句:
continue语句break命令类似,但它会导致当前迭代的循环退出,而不是整个循环。
这种参数是有用的,当一个错误已经发生,但你想尝试执行下一个循环迭代。
语法
continue
和break语句一样,一个整数参数可以给continue命令跳过嵌套循环的命令。
continue n
这里n指定第n个封闭循环 continue 。
例子:
下面的循环利用continue语句返回,并开始处理下一个语句:
#!/bin/sh NUMS="1 2 3 4 5 6 7" for NUM in $NUMS
do
Q=`expr $NUM % 2`
if [ $Q -eq 0 ]
then
echo "Number is an even number!!"
continue
fi
echo "Found odd number"
done
这将产生以下结果:
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number
linux shell中break和continue跳出循环的更多相关文章
- shell中break 与 continue
在学习中我看到不单单有break和continue的存在,还有break -n 和 continue -n 的存在 那么它们有什么区别呢. 这时可以写出测设代码: for i in a b c ...
- Shell脚本break和continue命令
在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用 break 和 continue 来跳出循环. break命令 允许跳出所有循环(终止执行后面的所有循环). continu ...
- Delphi中break,exit,abort跳出循环的比较
http://www.delphitop.com/html/hanshu/104.html Delphi中break,exit,abort跳出循环的比较 exit: 退出函数体abort: 遇到异常, ...
- python中break、continue 、exit() 、pass终止循环的区别
python中break.continue .exit() .pass区分 1.break:跳出循环,不再执行 Python break语句,就像在C语言中,打破了最小封闭for或while循环. b ...
- 关于python中break与continue的区别
在python中break和continue都有跳出循环体的作用,但是他们还是有一些区别的,具体区别如下: break:是直接跳出循环,跳出自己所处的整个循环体 continue:只是跳出本次循环,而 ...
- linux shell 中的sleep命令
开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...
- 理解 Linux shell 中的一个方言:2>&1
理解 Linux shell 中的一个方言:2>&1 2016-11-14 杜亦舒 前言 在使用 linux 命令或者 shell 编程时,这个用法常会遇到 2>&1 如 ...
- linux shell 中的位置变量
对于linux shell 中的位置变量,我一直以来都是吐不出来又咽不下去,每次看到都不懂,不懂了就去百度google,看完了又忘,真是慢性咽炎啊.现在认真想想也是,其实自己一直以来都没有好好学习过, ...
- Linux shell中的一个问题 ${}带正则匹配的表达式
目前在准备龙芯项目的PMON,在研究其编译过程的时候,看到一些make 语句,百思不得其解.后来在shell编程中看到一点资料,牵扯到Shell中的正则表达式.故记录下来,以备后来查阅. 问题: 在某 ...
随机推荐
- 部署Asp.net core & Nginx,通过nginx转发
部署Asp.net core & Nginx,通过nginx转发 CentOS 7 x64 1.vs2017 建立Asp.net core项目,并发布到目录 2.通过FTP工具,将程序copy ...
- php处理IOS图片旋转
$picAddr = $url; $exif = exif_read_data($picAddr); $image = imagecreatefromjpeg($picAddr); if($exif[ ...
- 开源堡垒机Gateone 安装过程记录及报错处理
1.下载git源码或者zip包都可以,下载到我们制定部署目录. git地址:https://github.com/liftoff/GateOne.git 2.检查tornado 版本,安装tornad ...
- redis centos 6.5 redis版本3.2.8安装过程
redis作为非关系数据库的典型应用,在庞大的数据通信处理有着自己强大的优势,今天也自己来开始学些redis. 以下每一个语句都是我执行的命令. 按照所查资料分析,需要tcl测试工具,这个在cento ...
- JMeter上传案例2
今天自己的QQ群里有个朋友一直在问JMeter图片上传的问题 原始通过JMeter抓包如下: 参考: http://blog.csdn.net/huashao0602/article/details/ ...
- jquery正则表达式验证(手机号、身份证号、中文名称)
这篇文章主要介绍了jquery正则表达式验证,实现手机号.身份证号.中文名称验证,感兴趣的小伙伴们可以参考一下 本文实例需要验证的内容:中文姓名.手机号.身份证和地址,验证方法分享给大家供大家参考,具 ...
- Servlet解决中文乱码问题
request.setCharacterEncoding("UTF-8"); 并且把这句话放在request.getParameter()之前
- 数学建模:1.概述& 监督学习--回归分析模型
数学建模概述 监督学习-回归分析(线性回归) 监督学习-分类分析(KNN最邻近分类) 非监督学习-聚类(PCA主成分分析& K-means聚类) 随机算法-蒙特卡洛算法 1.回归分析 在统计学 ...
- Hive| DDL| DML
类型转换 可以使用CAST操作显示进行数据类型转换 例如CAST(' 转换成整数1:如果强制类型转换失败,如执行CAST('X' AS INT),表达式返回空值 NULL. : jdbc:hive2: ...
- day75 form 组件(对form表单进行输入值校验的一种方式)
我们的组件是什么呢 select distinct(id,title,price) from book ORM: model.py class Book(): title=model.CharFiel ...