• 【005】Shell退出状态码


    1. 退出状态码

    在C/C++语言中,系统库里提供了exit()函数,用来正常终止一个进程,并会将并将status & 0377的值返回给父进程。其函数原型如下:

    #include 
    void exit(int status);
    
    • 1
    • 2

    Shell脚本中,也提供了名为exit的命令。该命令用来结束一个脚本,并返回一个值(退出状态码),该值会被传递给脚本的父进程。

    exit命令的使用语法如下:
                                       exit status

    exit后面的status是可选参数。 如果不填写status,则该status默认为exit命令的前一个命名执行的退出状态码。Shell中的每一个命令都会使用一个退出状态码,其值范围是0~255。同样,脚本中的函数和脚本本身也会返回一个退出状态码。在脚本或脚本函数中最后一个执行的命令决定了函数的退出状态码值。

    exit status把退出状态码传递给Shell。注意,其中status的值范围0~255,并且必须是一个整数。

    • 示例一

    该示例脚本中,在func函数内部会执行exit命令,并返回退出状态码1给Shell,结束当前的脚本文件执行。因此黄色线框内部的打印不会输出。

    在这里插入图片描述
    我们可以在Shell终端打印该脚本的退出状态码,其值为1

    在这里插入图片描述

    1.1 退出状态码范围

    在前一节中有提到过,Shell退出状态码值范围是0~255。一般情况下,退出状态码0表示成功,1~255表示失败。下面是Linux下常见退出状态码以及对应错误信息。
    在这里插入图片描述

    2. exit使用情形

    exit命令使用过程中,需注意以下几种情形:

    • exit不带参数
      若脚本以不带参数的exit命令来结束,则此脚本的退出状态码等于该脚本中最后一个被执行的命令的状态来决定。

    比如:
    在这里插入图片描述

    不带参数的exit命令,效果等价于 exit $?,也等价于脚步结尾不写exit命令。

    • exit 带显示参数
      该使用方法在本文第一节的示例一种有介绍,这里不再重复描述。

    $? 命令保存脚本文件中最后所执行的命令的退出状态码。

  • 相关阅读:
    oracle11g-图形安装(centos7)
    nginx-vts监控模块
    爬虫工作者必备:使用爬虫IP轻松获得最强辅助
    程序装载:“640K内存”真的不够用么?
    【Kubernetes快速实战】
    二、怎么简单使用vuex
    全自动情感故事对话视频生成神器
    基于matlab的不同参数下的波束形成算法仿真
    【问题思考总结】解方程的时候什么时候可以消去方程?如何保证不丢解?
    正点原子嵌入式linux驱动开发——Linux中断
  • 原文地址:https://blog.csdn.net/lixiaogang_theanswer/article/details/126849534