【问题标题】:How can I get Python exit code from a bash script? [duplicate]如何从 bash 脚本中获取 Python 退出代码? [复制]
【发布时间】:2021-08-09 15:19:30
【问题描述】:

您好,我正在努力从 bash 脚本中调用的脚本中获取 python 返回代码。见如下:

toto.py:

if __name__ == "__main__":
    OK = myTest()

    if(OK):
        print("Test was successful. Error code: 0")
        sys.exit(0)
    else:
        print("Test failed. Error code: 1")
        sys.exit(1)

在 test.sh 中:

python toto.py
echo "After calling toto.py"

如果我的 python 脚本返回 sys.exit(0),bash 脚本会继续并打印“在调用 toto.py 之后”。但是,如果我的 python 脚本以 sys.exit(1) 结束,则 bash 脚本将结束并且不会继续。我可以在控制台中看到通过调用 echo $? 返回正确的退出代码并打印 1。 我没想到 python sys.exit() 函数也会退出我的 bash 脚本。 那么我应该使用“return”关键字吗?

【问题讨论】:

  • 无法重现,echo 始终显示。正如预期的那样。
  • 如果在测试脚本的开头加上“set +e”会发生什么?
  • 是的,我刚刚想通了,脚本以 set -e 开头。删除它或通过 set +e 替换它解决了问题。谢谢

标签: python bash exit


【解决方案1】:

在您的 shell 脚本中,执行以下操作:-

python toto.py
echo $?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 2021-08-16
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多