【Linux】循环控制及状态返回值break、continue、exit、return
一、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的更多相关文章
- Shell编程之循环控制及状态返回值
1.break.continue.exit.return的对比 break.continue在条件语句和循环语句中用于控制程序走向: exit用于终止所有语句并退出当前脚本,还可以返回上一次程序或命令 ...
- 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 ...
- [转帖]Shell脚本中的break continue exit return
Shell脚本中的break continue exit return 转自:http://www.cnblogs.com/guosj/p/4571239.html break结束并退出循环 cont ...
- C语言break/continue/exit/return的功能区别
break是跳出整个循环而执行循环体之外的下一条语句: continue只是跳出本次循环继续判断下一次循环条件是否满足. exit() 结束当前进程/当前程式/,在整个程式中,只要调用 exit ,就 ...
- Shell脚本中的break continue exit return
转自:http://www.cnblogs.com/guosj/p/4571239.html break结束并退出循环 continue在循环中不执行continue下面的代码,转而进入下一轮循环 e ...
- Bash脚本编程学习笔记04:测试命令test、状态返回值、位置参数和特殊变量
我自己接触Linux主要是大学学习的Turbolinux --> 根据<鸟哥的Linux私房菜:基础篇>(第三版) --> 马哥的就业班课程.给我的感觉是这些课程对于bash的 ...
- js中退出语句break,continue和return 比较 (转载)
在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 首先:break和continue两个一 ...
- js中退出语句break,continue和return 比较
js中退出语句break,continue和return 比较 在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是 ...
- JS中break continue和return的用法?
在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 break和continue: 退出循环 ...
随机推荐
- Java SPI机制原理和使用场景
SPI的全名为Service Provider Interface.这个是针对厂商或者插件的.一般来说对于未知的实现或者对扩展开放的系统,通常会把一些东西抽象出来,抽象的各个模块,往往有很多不同的实现 ...
- CountDownLatch使用场景及分析
JDk1.5提供了一个非常有用的包,Concurrent包,这个包主要用来操作一些并发操作,提供一些并发类,可以方便在项目当中傻瓜式应用. JDK1.5以前,使用并发操作,都是通过Thread,Run ...
- RF的特征子集选取策略(spark ml)
支持连续变量和类别变量,类别变量就是某个属性有三个值,a,b,c,需要用Feature Transformers中的vectorindexer处理 上来是一堆参数 setMaxDepth:最大树深度 ...
- [转]php socket编程通信
FROM : http://blog.csdn.net/baixiaoshi/article/details/9399083 今天终于测试成功了php中的socket通信,先看原理图 这里可以清晰的看 ...
- ASP.NET Core 中间件 中间件(Middleware)和过滤器(Filter)的区别
https://www.cnblogs.com/savorboard/p/5586229.html 前言 在上篇文章主要介绍了DotNetCore项目状况,本篇文章是我们在开发自己的项目中实际使用的, ...
- 支付宝 iphone6 指纹验证失败
重启 iphone6 就可以了. 再次打开 支付宝 那个 指纹功能,就有一个弹出框 可以按指纹了.
- hyper-v 用户无法再 创建外部配置存储 0x80070005
windows server 2008R2 刚安装的hyper-v 重启过. 修改配置文件到d:\Hyper-V目录下, hyper-V 创建 服务器遇到错误 操作失败 创建外部配置存储:一般性拒绝访 ...
- Vue.js vs React vs Angular 深度对比[转]
这个页面无疑是最难编写的,但我们认为它也是非常重要的.或许你曾遇到了一些问题并且已经用其他的框架解决了.你来这里的目的是看看 Vue 是否有更好的解决方案.这也是我们在此想要回答的. 客观来说,作为核 ...
- easyui combobox默认选中项
今天写前端代码发现combobox还挺难搞, $("#select_Dic").combobox({ url: "http: ...
- RxJava RxLifecycle 生命周期 内存泄漏 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...