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

前端之家收集整理的这篇文章主要介绍了一篇博客分清shell中的状态返回值-return-break-continue-exit前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

http://www.jb51.cc/article/p-ktmzttws-bms.html

一、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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@xuegod63~] #vim3.sh
#!/bin/bash
@H_286_403@ @H_437_404@#
@H_437_404@#User:Mobanche
@H_437_404@#Date:2017-8-1
@H_437_404@#Description:Thisshellscriptisusedprimarilytoidentifythestate
@H_437_404@#returnvalueofaloopcontrolthatisdistinguishedfrom
@H_437_404@#thereturn-break-continue-exit
if [$ @H_437_404@#-ne1]
then
echo "usage:{conntiue|break|exit|return}"
exit 1
fi
test (){
for ((i=1;i<=5;i++))
do
[$i- eq 3]
then
$*
fi
echo $i
done
"Iamfunction"
}
$*
func_ret=$?
[` $*| grep return | wc -l`- 1]
then
"return'sexitstatus:$func_ret"
fi
OK

测试:

wKioL1mAZGDxWj05AAApnDV2_Pg131.png

猜你在找的Bash相关文章