我正在用Python编写一个shell脚本(#!/usr/bin/env python
)。一般来说,我对shell脚本有点新意,如果我误解了某些内容,请道歉。
我目前的理解是,如果我的shell脚本成功运行,我应该调用sys.exit()
来表示它已成功(即返回0)。
如果我遇到错误(具体而言,用户已经传递了我不期望的参数),我应该返回什么,以及如何?
是否可以使用任何非零值调用sys.exit()
,例如sys.exit(1)
?
答案 0 :(得分:6)
任何非零值都可以。所以sys.exit(1)
是正确的。这些错误代码对于在命令行上使用脚本非常有用:
python test.py && echo 'success'
当您的脚本返回0以外的任何内容时,上述内容将不会打印“成功”。
答案 1 :(得分:6)
大多数Shell实用程序具有各种返回值,具体取决于发生的错误。
标准是当状态代码为0退出时,表示执行成功结束。
对于其他错误代码,这在很大程度上取决于实用程序本身。您最有可能在上述实用程序的手册页中了解错误代码。
以下是ls
手册页的简单示例:
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).
强烈建议您正确记录实用程序的退出代码,以便用户正确使用它。