Python中的退出代码
我收到一条消息说Python中的退出代码,python,exit-code,Python,Exit Code,我收到一条消息说脚本xyz.py返回了退出代码0。这是什么意思 Python中的退出代码是什么意思?有多少人?哪些是重要的?0的退出代码通常意味着“这里没有错误”。但是,如果脚本的程序员没有遵循约定,您可能必须查阅源代码以了解其含义。通常,非零值作为错误代码返回。0的退出代码通常表示“这里没有错误”。但是,如果脚本的程序员没有遵循约定,您可能必须查阅源代码以了解其含义。通常,非零值作为错误代码返回。退出代码仅具有脚本作者指定的含义。Unix的传统是退出代码0表示“成功”,其他任何东西都是失败。确
脚本xyz.py返回了退出代码0
。这是什么意思
Python中的退出代码是什么意思?有多少人?哪些是重要的?0的退出代码通常意味着“这里没有错误”。但是,如果脚本的程序员没有遵循约定,您可能必须查阅源代码以了解其含义。通常,非零值作为错误代码返回。0的退出代码通常表示“这里没有错误”。但是,如果脚本的程序员没有遵循约定,您可能必须查阅源代码以了解其含义。通常,非零值作为错误代码返回。退出代码仅具有脚本作者指定的含义。Unix的传统是退出代码0表示“成功”,其他任何东西都是失败。确保给定脚本的退出代码含义的唯一方法是检查脚本本身。退出代码仅具有脚本作者指定的含义。Unix的传统是退出代码0表示“成功”,其他任何东西都是失败。确定给定脚本的退出代码的含义的唯一方法是检查脚本本身。许多编程语言中的退出代码由程序员决定。因此,您必须查看您的程序源代码(或手册)。零通常意味着“一切正常”。许多编程语言中的退出代码由程序员决定。因此,您必须查看您的程序源代码(或手册)。零通常表示“一切正常”。您正在脚本中查找对的调用。该方法的参数作为退出代码返回给环境
很可能脚本从未调用exit方法,0是默认的退出代码。您正在脚本中查找对的调用。该方法的参数作为退出代码返回给环境
很可能脚本从未调用退出方法,0是默认退出代码。来自以下文档: 可选参数arg可以是 给出退出状态的整数 (默认为零)或其他类型 当然可以。如果是整数,则为零 被视为“成功终止” 并且考虑任何非零值 外壳和外壳的“异常终止” 诸如此类。大多数系统都要求它 在0-127范围内,并产生 否则将导致未定义的结果。一些 系统有一个约定 赋予特定含义 具体的出口代码,但这些是 普遍不发达;Unix 程序通常使用2作为命令 行语法错误,1表示所有其他 一种错误 在shell脚本中使用退出代码的一个示例。在Bash中,您可以检查特殊变量
$?
的最后退出状态:
me@mini:~$ python -c ""; echo $?
0
me@mini:~$ python -c "import sys; sys.exit(0)"; echo $?
0
me@mini:~$ python -c "import sys; sys.exit(43)"; echo $?
43
就我个人而言,我尝试使用在
/usr/include/asm generic/errno.h
中找到的退出代码(在Linux系统上),但我不知道这样做是否正确。来自以下文档:
可选参数arg可以是
给出退出状态的整数
(默认为零)或其他类型
当然可以。如果是整数,则为零
被视为“成功终止”
并且考虑任何非零值
外壳和外壳的“异常终止”
诸如此类。大多数系统都要求它
在0-127范围内,并产生
否则将导致未定义的结果。一些
系统有一个约定
赋予特定含义
具体的出口代码,但这些是
普遍不发达;Unix
程序通常使用2作为命令
行语法错误,1表示所有其他
一种错误
在shell脚本中使用退出代码的一个示例。在Bash中,您可以检查特殊变量$?
的最后退出状态:
me@mini:~$ python -c ""; echo $?
0
me@mini:~$ python -c "import sys; sys.exit(0)"; echo $?
0
me@mini:~$ python -c "import sys; sys.exit(43)"; echo $?
43
就我个人而言,我尝试使用在
/usr/include/asm generic/errno.h
中找到的退出代码(在Linux系统上),但我不知道这样做是否正确。操作系统命令有退出代码。寻找一些关于这个的资料。shell使用退出代码来决定程序是否工作、是否有问题或是否失败。目前正在努力创建标准(或至少常用)退出代码。请参阅此帖子。操作系统命令有退出代码。寻找一些关于这个的资料。shell使用退出代码来决定程序是否工作、是否有问题或是否失败。目前正在努力创建标准(或至少常用)退出代码。请参阅此帖子。有一个模块定义标准退出代码:
例如,权限被拒绝是错误代码13:
import errno, sys
if can_access_resource():
do_something()
else:
sys.exit(errno.EACCES)
有一个模块定义标准退出代码:
例如,权限被拒绝是错误代码13:
import errno, sys
if can_access_resource():
do_something()
else:
sys.exit(errno.EACCES)
对于记录,您可以使用定义的POSIX标准退出代码 例如:
import sys, os
try:
config()
except:
sys.exit(os.EX_CONFIG)
try:
do_stuff()
except:
sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
对于记录,您可以使用定义的POSIX标准退出代码 例如:
import sys, os
try:
config()
except:
sys.exit(os.EX_CONFIG)
try:
do_stuff()
except:
sys.exit(os.EX_SOFTWARE)
sys.exit(os.EX_OK) # code 0, all ok
如果您希望可移植地使用,请参阅PyPI上的包 安装软件包:
$pip安装exitstatus
在代码中使用:
导入系统
从出口状态导入出口状态
系统退出(退出状态成功)
如果您希望可移植地使用,请参阅PyPI上的软件包 安装软件包:
$pip安装exitstatus
在代码中使用:
导入系统
从出口状态导入出口状态
系统退出(退出状态成功)
答案是“取决于退出代码0的含义”
然而,在大多数情况下,这意味着“一切正常”
我喜欢POSIX: 因此,在shell中,我会键入:
python script.py && echo 'OK' || echo 'Not OK'
如果我的Python脚本调用sys.exit(0),shell将返回“OK”
如果我的Python脚本调用sys.exit(1)(或任何非零整数),shell将返回“notok”
你的工作就是巧妙地使用shell,阅读脚本的文档(或源代码),看看退出代码是什么