一、break、continue、exit、return的区别和对比

break n     :如果省略n,则表示跳出整个循环,n表示跳出循环的层数

continue n:如果省略n,则表示跳过本次循环,忽略本次循环的剩余代码,进入循环的下一次循环,n表示退出到第n层继续循环

exit n        :退出当前shell,n为上次执行程序的状态返回值。exit 0表示正常退出,exit 1表示非正常退出

return n    :用于在函数里作为函数的返回值,以判断函数执行的是否正确。

二、break、continue、exit功能执行的流程图

1.循环中break功能执行流程图

2.循环中continue功能执行流程图

3.循环中exit功能执行流程图

三、案例说明

下面是一个关于break、continue、exit、return的脚本

#!/bin/bash
#作者:OLIVER
#文件名:19_12_1.sh
if [ $# -ne 1 ];then #<==如果传入的参数个数不为1,则打印下面信息提示用户。
echo $"请给脚本$0传入参数(break|continue|exit|return)中的其中一个!" #<==传入这4个参数中的其中一个
exit 1 #<==exit 1表示非正常退出,0表示正常退出
fi
test(){
for((i=0;i<=6;i++))
do
if [ $i -eq 3 ];then
$*;#<==接受函数外的参数
fi
echo $i
done
echo "============循环结束!===============" #<==循环外的输出提示
}
test $* #<==调用函数并传参数
func_stat=$? #<==函数执行状态
if [ `echo $*|grep return|wc -l` -eq 1 ]
then
echo "return's exit status:$func_stat"
fi
echo "ok"

1.直接执行

直接执行命令,则在第一个if语句中就被exit了,并且打印提示信息给用户

2.执行参数为break

根据结果我们可以看出,当i=3以后,该函数就获取到break了,就直接退出了!在i<3之前,函数会将i值打印出来。

3.执行参数为continue

我们从上述结构可以看到没有3,那是因为当i=3的时候,直接就终止本次循环,进而进入到下次循环

4.执行参数为exit

从结果可以看出,当i=3的时候直接就退出程序了

5.执行参数为return

从运行结果可以看出,程序在运行的时候,进入到函数中的循环,并且当i=3的时候,return的作用是退出当前函数,并且下面判断了如果输入命令是return,则打印出return退出的状态码。

【Linux】循环控制及状态返回值break、continue、exit、return的更多相关文章

  1. Shell编程之循环控制及状态返回值

    1.break.continue.exit.return的对比 break.continue在条件语句和循环语句中用于控制程序走向: exit用于终止所有语句并退出当前脚本,还可以返回上一次程序或命令 ...

  2. break continue exit return 的区别

    [root@localhost day1]# cat ss.sh #!/bin/bash for ((i=0;i<5;i++)) do if [ $i -eq 3 ] then break #c ...

  3. [转帖]Shell脚本中的break continue exit return

    Shell脚本中的break continue exit return 转自:http://www.cnblogs.com/guosj/p/4571239.html break结束并退出循环 cont ...

  4. C语言break/continue/exit/return的功能区别

    break是跳出整个循环而执行循环体之外的下一条语句: continue只是跳出本次循环继续判断下一次循环条件是否满足. exit() 结束当前进程/当前程式/,在整个程式中,只要调用 exit ,就 ...

  5. Shell脚本中的break continue exit return

    转自:http://www.cnblogs.com/guosj/p/4571239.html break结束并退出循环 continue在循环中不执行continue下面的代码,转而进入下一轮循环 e ...

  6. Bash脚本编程学习笔记04:测试命令test、状态返回值、位置参数和特殊变量

    我自己接触Linux主要是大学学习的Turbolinux --> 根据<鸟哥的Linux私房菜:基础篇>(第三版) --> 马哥的就业班课程.给我的感觉是这些课程对于bash的 ...

  7. js中退出语句break,continue和return 比较 (转载)

    在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 首先:break和continue两个一 ...

  8. js中退出语句break,continue和return 比较

    js中退出语句break,continue和return 比较 在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是 ...

  9. JS中break continue和return的用法?

    在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 break和continue: 退出循环 ...

随机推荐

  1. 《Python自然语言处理》

    <Python自然语言处理> 基本信息 作者: (美)Steven Bird    Ewan Klein    Edward Loper 出版社:人民邮电出版社 ISBN:97871153 ...

  2. COPY ORCHARD GET 404: System.UnauthorizedAccessException: mappings.bin的访问被拒绝

    COPY ORCHARD 得到 404 错误,结果翻看Logs,得到的错误是: 014-07-31 17:36:46,217 [16] Orchard.Environment.DefaultOrcha ...

  3. .Net Standard 类库的创建和使用

    一..Net Standard类库的创建 1.在当前Vs 2017中创建.Net Standard 类库项目,目前版本默认值 .Net Standard v1.4 二..Net Standard类库的 ...

  4. InnoDB Record, Gap, and Next-Key Locks

    InnoDB has several types of record-level locks including record locks, gap locks, and next-key locks ...

  5. Unreal Engine 4 减少编辑器的帧率

    默认的,打开UE4的编辑器,显卡会以全速渲染场景,在我的机器上.是120FPS. 整个机器就開始轰鸣了.资源占用太凶了.事实上全然不是必需这样,帧率在60左右就足够了. 那怎么改动呢,试了非常多办法. ...

  6. 奇怪吸引子---Finance

    奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...

  7. GPS精度因子(GDOP,PDOP,HDOP,VDOP,TDOP)

    PDOP:位置精度因子(Position Dilution of Precision),直译为“精度强弱度”,通常翻译为“相对误差”.具体含义是:由于观测成果的好坏与被测量的人造卫星和接收仪间的几何形 ...

  8. 4.3 使用 SQL 语句操作数据框

    下载并安装 “sqldf” 包 library(sqldf) newData <- sqldf("select * from mtcars where carb=1 order by ...

  9. Redis集群搭建最佳实践

    要搭建Redis集群.首先得考虑以下的几个问题; Redis集群搭建的目的是什么?或者说为什么要搭建Redis集群? Redis集群搭建的目的事实上也就是集群搭建的目的.全部的集群主要都是为了解决一个 ...

  10. [Functional Programming] Arrow Functor with contramap

    What is Arrow Functor? Arrow is a Profunctor that lifts a function of type a -> b and allows for ...