跳出循环和函数返回值
一、退出循环
contine:是结束本次执行的循环,默认是contine 1,当contine 3 时,则表示进入第3层循环;
break:是跳出本次循环,默认是break 1, 当break 2 时,则表示退出第二层循环,进入第3层循环;
因此在循环中:contine n = break n-1
[root@centos7 ~/test]#vim for.sh #!/bin/bash for i in {1..3};do for j in {101..103};do for k in {1001..1003};do if [ $K -eq 1002 ];than #当执行玩第一轮i=1,j=101,k=1001,输出1001,进入i=1,j=101,k=10 contine 3 02时退出回到,i=2,k=101,k=1001,输出1001,进入i=2,k=101,k= echo $K done done done [root@centos7 ~/test]#bash for.sh ―――――――――――――――――――――――――――――――――――――――――――――――――― [root@centos7 ~/test]#vim for.sh #!/bin/bash for i in {1..3};do for j in {101..103};do for k in {1001..1003};do if [ $K -eq 1002 ];than break 2 1002时退出回到,i=3,依次显示。 echo $K done done done [root@centos7 ~/test]#bash for.sh |
二、函数返回值
在函数第一次遇到return时,则跳出函数,类似for循环中的contine;
[root@centos7 ~/test]#vim return.sh #!/bin/bash Ping (){echo "ping 127.0.0.1" ping -c1 -w1 127.0.0.1 &>/dev/null && return 10 echo "退出了没有" echo "ping 127.0.0.2" ping -c1 -w1 127.0.0.2 &>/dev/null && return 20 echo "ping 127.0.0.3" ping -c1 -w1 127.0.0.3 &>/dev/null &&return 30 } Ping [root@centos7 ~/test]#bash return.sh ping 127.0.0.1 [root@centos7 ~/test]#echo $?10 |