• 【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 带显示参数
      该使用方法在本文第一节的示例一种有介绍,这里不再重复描述。

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

  • 相关阅读:
    Java 并发编程解析 | 如何正确理解Java领域中的锁机制,我们一般需要掌握哪些理论知识?
    C++ Reference: Standard C++ Library reference: C Library: cwchar: wmemset
    1.IAR-8051安装
    GreenPlum版本升级
    LSTM的预测算法 - 股票预测 天气预测 房价预测 计算机竞赛
    Rust动态数组Vec
    【Node.js】深度解析搭建后台服务器-http模块
    如何把loss的tensor换成标量
    2.6 自定义srv python
    如何做架构设计
  • 原文地址:https://blog.csdn.net/lixiaogang_theanswer/article/details/126849534