我已经配置了我的提示符(bash)以在上一个命令未成功(即非零)时打印出其退出代码。因此,即使程序似乎没有遇到任何问题,我也会看到很多退出代码。有没有一种方法可以查找这些退出代码的含义?
我总是尝试man页面、info页面或"--help"选项,但都没有结果。
为了澄清,我问的是关于Linux自带的实用工具,比如cd
、ls
、du
等的问题。
我已经配置了我的提示符(bash)以在上一个命令未成功(即非零)时打印出其退出代码。因此,即使程序似乎没有遇到任何问题,我也会看到很多退出代码。有没有一种方法可以查找这些退出代码的含义?
我总是尝试man页面、info页面或"--help"选项,但都没有结果。
为了澄清,我问的是关于Linux自带的实用工具,比如cd
、ls
、du
等的问题。
exit(0);
或exit(EXIT_SUCCESS);
都表示成功退出,但返回给操作系统的值可能不同。bash
无法执行命令,则会返回格式化的状态:
bash
会将退出状态编码为:
128 + 信号编号
bash
的含义不同。尽管如此,通常很少有程序以这些退出状态之一退出,因此您通常是安全的。请注意不同操作系统的惯例:Unix提供了一个8位状态,其中0表示成功;Windows提供了更大范围的退出状态值(16位或32位);我认为VMS使用0表示失败。
echo $?
会报告什么呢?据我所知,每个程序都有一个隐含的返回值。我同意“没有标准化”的部分。 - user unknown人页是这份文档的传统位置。如果你在 Debian 等系统上,甚至会期望你对未记录退出代码的实用程序提交错误报告。
高级Bash脚本指南还提供了具有特殊含义的退出代码。
ls
命令:如果我输入man ls
并且搜索/exit status
,将会跳转到相关段落。 - etuardu