检查 python 函数返回的退出代码

ank*_*kit 1 windows-shell python-2.7

我写了一个python函数

def foo():
    if A:
        do something
    if B:
        exit(-1)

if __name__ == "__main__":
    foo()
Run Code Online (Sandbox Code Playgroud)

有什么方法可以检查 foo 函数返回的退出代码吗?我从 Windows shell 运行它。

Set*_*ton 5

要检查退出代码,请查看变量$?(在 sh/bash/csh/ 等中)。假设您的脚本位于文件 foo.py 中。

$ ./foo.py
$ echo $?  # Prints 0 on success, -1 on failure.
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这不是特定于 python 的。对于所有返回退出代码的程序都是如此。


退出代码不是来自foo函数,而是来自sys.exit()函数。如果程序由于异常而退出,则其退出代码为 1。如果将数字传递给sys.exit(),则它将以该退出代码退出。否则,它的退出代码为 0。


对于 Windows shell,请查看此答案:How do I get the application exit code from a Windows command line?