我该如何表示我的Python脚本返回了错误?

8 投票
2 回答
7692 浏览
提问于 2025-04-16 15:11

我正在用Python写一个shell脚本(#!/usr/bin/env python)。我对shell脚本还不是很熟悉,所以如果我理解错了什么,请见谅。

我现在的理解是,如果我的shell脚本成功运行,我应该调用sys.exit()来表示它成功了(也就是返回0)。

如果我遇到了错误(比如用户传入了我没有预料到的参数),我应该返回什么,怎么做呢?

直接用非零值调用sys.exit()可以吗,比如sys.exit(1)

2 个回答

6

任何非零的值都可以用。所以 sys.exit(1) 是正确的。这些错误代码在命令行使用脚本时很有用:

python test.py && echo 'success'

当你的脚本返回的值不是0时,上面的代码不会打印'成功'。

7

大多数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).

强烈建议你对自己工具的退出代码进行详细记录,这样用户才能正确使用它。

撰写回答