Shell入门-特殊命令break、continue、exit、return

特殊命令:break、continue、exit、return

  • break(循环控制)
  • continue(循环控制)
  • exit(退出脚本)
  • return(退出函数)

break、continue在条件语句及循环语句(for、while、if等)中用于控制程序的走向;而exit则用于终止所有语句并退出当前脚本,除此之外,exit还可以返回上一次程序或命令的执行状态值给当前Shell; return类似于exit,只不过return仅用于在函数内部返回函数执行的状态值。

  • break n:如果省略n,则表示跳出整个循环,n表示跳出循环的层数
  • continue n:如果省略n,则表示跳过本次循环,忽略本次循环的剩余代码,进入循环的下一次循环。n表示退到第n层继续循环
  • exit n:退出当前Shell程序,n为上一次程序执行的状态返回值。n也可以省略,在下一个Shell里通过$?接收exit n的n值
  • return n:用于在函数里作为函数的返回值,以判断函数执行是否正确。在下一个Shell里通过$?接收exit n的n值

实例一

通过break命令跳出整个循环,执行循环下面的其他程序

[root@localhost shell]# cat 12_1_1.sh 
#!/bin/bash
#***********************************************
#Author:        luotianhao
#Mail:          tianhao.luo@hand-china.com
#Version:       1.0
#Date:          2021-03-16
#FileName:      12_1_1.sh
#Description:   This is a test script.
#***********************************************
[ $# -ne 1 ] && {
  echo $"usage:$0 {break|continue|exit|return}"
  #<=====退出脚本
  exit 1
}
test() {
  for((i=0;i<=5;i++))
  do
      [ $i -eq 3 ] && {
        #<====接收函数外的参数,是{break|continue|exit|return}中的一个
        $*;
      }
      echo $i
  done
  echo "i am in func"
}

test $*

func_ret=$?

[ $(echo $* |grep return|wc -l) -eq 1 ] && {
  echo "return's exit status:$func_ret "
}

echo "ok"
[root@localhost shell]# sh 12_1_1.sh 
usage:12_1_1.sh {break|continue|exit|return}
[root@localhost shell]# sh 12_1_1.sh break
0
1
2
i am in func
ok
[root@localhost shell]# sh 12_1_1.sh continue
0
1
2
4
5
i am in func
ok
[root@localhost shell]# sh 12_1_1.sh exit
0
1
2
[root@localhost shell]# sh 12_1_1.sh return
0
1
2
return's exit status:0 
ok
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值