我应该如何指出我的Python shell脚本返回错误?

时间:2011-04-06 09:59:53

标签: python shell

我正在用Python编写一个shell脚本(#!/usr/bin/env python)。一般来说,我对shell脚本有点新意,如果我误解了某些内容,请道歉。

我目前的理解是,如果我的shell脚本成功运行,我应该调用sys.exit()来表示它已成功(即返回0)。

如果我遇到错误(具体而言,用户已经传递了我不期望的参数),我应该返回什么,以及如何?

是否可以使用任何非零值调用sys.exit(),例如sys.exit(1)

2 个答案:

答案 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).

强烈建议您正确记录实用程序的退出代码,以便用户正确使用它。