我想知道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 作为“其他错误”。