1. 程式人生 > 實用技巧 >一篇部落格分清shell中的狀態返回值-return-break-continue-exit

一篇部落格分清shell中的狀態返回值-return-break-continue-exit

一篇部落格分清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功能的執行流程邏輯圖


wKioL1mAZC7BCACTAABfUCx4vyc192.png

wKiom1mAZC6iNRXEAABepFOOimA055.png


2、在迴圈中bcontinue功能的執行流程邏輯圖




wKioL1mAZEPQQVeoAABfsEAdVjk688.png

wKiom1mAZUaDzA7TAABhWoNhKds129.png



3、在迴圈中exit功能的執行流程邏輯圖

wKioL1mAZFLT3LpqAABptYgH8TE585.png

wKiom1mAZFLRQ_DtAABqMx-WLA8644.png


三、用一個小指令碼區分breakcontinueexitreturn

[[email protected]~]#vim3.sh
#!/bin/bash
#
#User:Mobanche
#Date:2017-8-1
#Description:Thisshellscriptisusedprimarilytoidentifythestate
#returnvalueofaloopcontrolthatisdistinguishedfrom
#thereturn-break-continue-exit

if[$#-ne1]
then
echo"usage:{conntiue|break|exit|return}"
exit1
fi

test(){
for((i=1;i<=5;i++))
do
if[$i-eq3]
then
$*
fi
echo$i
done
echo"Iamfunction"
}
test$*
func_ret=$?
if[`echo$*|grepreturn|wc-l`-eq1]
then
echo"return'sexitstatus:$func_ret"
fi
echoOK


測試:

wKioL1mAZGDxWj05AAApnDV2_Pg131.png


轉載於:https://blog.51cto.com/blxueyuan/1952770