一篇部落格分清shell中的狀態返回值-return-break-continue-exit
阿新 • • 發佈:2020-10-09
一篇部落格分清shell中的狀態返回值-return-break-continue-exit
一、break、continue、exit、return的區別和對比
條件與迴圈控制及程式返回值命令知識表
命令 | 說明 |
break n | 如果省略n,則表示跳出整個迴圈,n表示跳出迴圈的層數 |
continue n | 如果省略n,則表示跳出本次迴圈,忽略本次迴圈剩餘程式碼,進入迴圈的下一次迴圈。n表示退到第n層繼續迴圈 |
exit n | 表示退出當前shell程式,n為上一次程式執行的狀態返回值,n也可以省略,在下一個shell裡可以通過“$?”接收exit n的n值。 |
return n | 用於在函式裡作為函式的返回值,以判斷函式執行是否正確,在下一個shell |
二、break、continue、exit功能執行流程圖
1、在迴圈中break功能的執行流程邏輯圖
2、在迴圈中bcontinue功能的執行流程邏輯圖
3、在迴圈中exit功能的執行流程邏輯圖
三、用一個小指令碼區分break、continue、exit、return
[[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
測試:
轉載於:https://blog.51cto.com/blxueyuan/1952770