99号出口是什么意思?

99号出口是什么意思?

我想知道99号出口是什么,为什么要使用它以及它的重要用途是什么。

例如,我正在使用exit 99.

答案1

以代码 99 退出没有任何意义,除非在特定程序的上下文中可能存在。

无论哪种方式,exit都会使用特定的退出代码退出 shell,在本例中为 99。您可以在以下位置找到更多信息help exit

exit: exit [n]
    Exit the shell.

    Exits the shell with a status of N.  If N is omitted, the exit status
    is that of the last command executed.

答案2

除了@Chris Down之外,还有一些为shell保留的返回码,它们有特殊的含义:

RETVAL   Meaning

1        General errors
2        Misusage
127      Command not found

您可以参考更多细节。

答案3

通常,如果您在某个时刻完成脚本:

exit 0

shell 将得到 0 作为返回码。这个零意味着一切都好

但是,如果您的程序发现某些错误情况,您应该以非零返回代码退出,以通知 shell 出现了问题。如果你不想更具体,你可以简单地使用1。

exit 1

但是,您可以使用其他数字向 shell 通知特定类型的故障。例如,bash它本身返回 127找不到程序。因此,如果您记录脚本的行为,则可以在运行脚本后通过检查特殊变量的值来执行一些有用的操作$?,该变量保存最后执行的程序的返回代码。

我不久前对此进行了研究,发现 FreeBDS 在退出代码方面有一些非常有用的约定,记录在man 3 sysexits

答案4

一些程序员会提供从 1 开始的许多不同的错误代码。新版本可能会引入新的特定错误代码,那么哪个代码应该用于
“所有其他错误/未指定的错误”?退出代码将被截断为 255,因此我会选择 99 作为“其他错误”。

相关内容