我收到一条消息,说脚本xyz.py返回退出代码0。这是什么意思?

Python中的退出码是什么意思?有多少个?哪些是重要的?


当前回答

退出代码0通常表示“这里没有问题”。但是,如果脚本的程序员没有遵循约定,您可能需要参考源代码来了解它的含义。通常非零值作为错误代码返回。

其他回答

下面是Unix退出代码0 -成功/ OK, 1 -不成功/错误。你可以简单地使用exit(0)或exit(1)调用而不导入sys module。

在许多编程语言中,退出码由程序员决定。因此您必须查看您的程序源代码(或手册)。零通常表示“一切都很好”。

答案是“取决于退出码0的含义”。

然而,在大多数情况下,这意味着“一切都很好”。


我喜欢POSIX:

因此,在shell中,我键入:

python script.py && echo 'OK' || echo 'Not OK'

如果我的Python脚本调用sys.exit(0), shell返回'OK'

如果我的Python脚本调用sys.exit(1)(或任何非零整数),shell返回'Not OK'。

巧妙地使用shell是您的工作,并阅读脚本的文档(或源代码)以了解退出代码的含义。

您要在脚本中查找对sys.exit()的调用。该方法的参数作为退出代码返回给环境。

脚本很可能从未调用退出方法,而0是默认的退出代码。

如果您希望可移植地使用标准POSIX退出码,请参阅PyPI上的exitstatus包。

安装包:

$ pip install exitstatus

在你的代码中使用:

import sys
from exitstatus import ExitStatus

sys.exit(ExitStatus.success)