我收到一条消息,说脚本xyz.py返回退出代码0。这是什么意思?
Python中的退出码是什么意思?有多少个?哪些是重要的?
我收到一条消息,说脚本xyz.py返回退出代码0。这是什么意思?
Python中的退出码是什么意思?有多少个?哪些是重要的?
当前回答
我建议使用内置的exit(0)干净地关闭,而不是使用sys.exit()
我不确定这是不是一个好建议。
所提到的文件如下:
site模块(在启动过程中自动导入,除非给出了-S命令行选项)将几个常量添加到内置名称空间。它们对于交互式解释器shell很有用,不应该在程序中使用。
然后:
退出(代码=没有) 对象,在打印时,打印类似“使用quit()或Ctrl-D(即EOF)退出”的消息,并在调用时引发带有指定退出码的SystemExit。
如果我们将它与sys.exit()文档进行比较,它使用的机制与引发SystemExit异常的机制相同。
其他回答
为了允许异常处理程序和其他事情执行,我建议使用内置的exit(0)干净地关闭,而不是使用sys.exit()突然终止进程。
在许多编程语言中,退出码由程序员决定。因此您必须查看您的程序源代码(或手册)。零通常表示“一切都很好”。
操作系统命令有退出码。请查看Linux退出代码以了解有关这方面的一些材料。shell使用退出代码来决定程序是否工作、是否存在问题或是否失败。有一些努力来创建标准的(或者至少是常用的)退出码。请参阅这篇高级Shell脚本文章。
您要在脚本中查找对sys.exit()的调用。该方法的参数作为退出代码返回给环境。
脚本很可能从未调用退出方法,而0是默认的退出代码。
答案是“取决于退出码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是您的工作,并阅读脚本的文档(或源代码)以了解退出代码的含义。