码迷,mamicode.com
首页 > 系统相关 > 详细

一篇博客分清shell中的状态返回值-return-break-continue-exit

时间:2017-08-01 21:48:56      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:shell

一篇博客分清shell中的状态返回值-return-break-continue-exit

 

一、breakcontinueexitreturn的区别和对比

 

条件与循环控制及程序返回值命令知识表

命令

说明

break n

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

continue n

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

exit n

表示退出当前shell程序n为上一次程序执行的状态返回值,n也可以省略,在下一个shell里可以通过“$?”接收exit nn值。

return n

用于在函数里作为函数的返回值,以判断函数执行是否正确,在下一个shell里可通过“$?”接收exit nn

 

 

 

二、breakcontinueexit功能执行流程图

 

1、在循环中break功能的执行流程逻辑图


技术分享

技术分享


 

 

 

 

2、在循环中bcontinue功能的执行流程逻辑图




技术分享

 技术分享



3、在循环中exit功能的执行流程逻辑图

技术分享

技术分享


 

三、用一个小脚本区分breakcontinueexitreturn

[root@xuegod63 ~]# vim 3.sh 
#!/bin/bash
#
#User : Mobanche
#Date : 2017-8-1
#Description :This shell script is used primarily to identify the state 
#             return value of a loop control that is distinguished from 
#             the return-break-continue-exit
 
if [ $# -ne 1 ]
then
        echo "usage: {conntiue|break|exit|return}"      
        exit 1
fi
 
test () {
        for ((i=1;i<=5;i++))
        do
                if [ $i -eq 3 ]
                then
                        $*
                fi
                echo $i
        done
        echo "I am function"
}
test $*
func_ret=$?
if [ `echo $*|grep return|wc -l` -eq 1 ]
then
        echo "return‘s exit status :$func_ret"
fi
echo OK


 

 

测试:

技术分享 


本文出自 “末班车” 博客,请务必保留此出处http://blxueyuan.blog.51cto.com/9673381/1952770

一篇博客分清shell中的状态返回值-return-break-continue-exit

标签:shell

原文地址:http://blxueyuan.blog.51cto.com/9673381/1952770

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!