• 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
    
  • 相关阅读:
    iPad开发学习之一环境搭建和基本概念
    介绍一款网页布局设计的工具Balsamiq Mockups
    JS怎么判断是哪个元素触发了点击事件?
    古希腊神话剧本
    WPS知识点
    PPT动画中点击、之前、之后的区别
    JS给网页中的选项添加标点
    调音师、调灯师
    输入密码后,可以修改指定列,其余信息不允许修改
    HiveQL详解
  • 原文地址:https://www.cnblogs.com/tianhao-luo/p/14543679.html
Copyright © 2020-2023  润新知