1. 程式人生 > >一篇博客分清shell中的狀態返回值-return-break-continue-exit

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

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

[[email protected] ~]# 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