我正在使用Python编写一个Shell脚本(#!/usr/bin/env python
)。因为我对Shell脚本不太熟悉,所以如果我理解有误,请谅解。
我的当前认识是,如果我的Shell脚本成功工作,那么我应该调用sys.exit()
来指示它成功执行(即返回0)。
如果我遇到了错误(特别是用户传递了我不希望出现的参数),那么我应该返回什么?如何处理?
只需要使用任何非零值调用sys.exit()
,例如sys.exit(1)
,可以吗?
我正在使用Python编写一个Shell脚本(#!/usr/bin/env python
)。因为我对Shell脚本不太熟悉,所以如果我理解有误,请谅解。
我的当前认识是,如果我的Shell脚本成功工作,那么我应该调用sys.exit()
来指示它成功执行(即返回0)。
如果我遇到了错误(特别是用户传递了我不希望出现的参数),那么我应该返回什么?如何处理?
只需要使用任何非零值调用sys.exit()
,例如sys.exit(1)
,可以吗?
大多数Shell工具在发生错误时会有不同的返回值。
标准规定,以状态码0退出表示执行成功结束。
对于其他错误代码,这取决于实用程序本身。您最有可能在上述实用程序的man页面中了解错误代码。
这是ls
man页面的一个简单示例:
Exit status: 0 if OK, 1 if minor problems (e.g., cannot access subdirectory), 2 if serious trouble (e.g., cannot access command-line argument).
强烈建议您正确记录实用程序的退出代码,以便其用户正确使用。
-h
或--help
选项时可以很容易地展示出来。 - intuitedsys.exit(1)
是正确的。这些错误代码对于在命令行上使用脚本非常有用:python test.py && echo 'success'