“/bin/bash”subprocess.check_output 无法抛出异常

"/bin/bash" subprocess.check_output not able to throw exception

如果命令抛出异常,将 subprocess.check_output 与默认可执行文件一起使用会给我 CalledProcessError 异常。 但是在 executable="/bin/bash" 的情况下,即使命令抛出异常,它也不会抛出 CalledProcessError 异常。

有时这个 test.py 文件会抛出异常,因此得到 CalledProcessError(预期行为)。

command = "python3 test.py |& tee test_output.txt"

out = str(
        subprocess.check_output(
          command,
          executable="/bin/bash",
          shell=True,
          stderr=subprocess.STDOUT,
        )
      )

请告诉我如何在“/bin/bash”可执行文件的情况下获得 CalledProcessError 异常。

经过 2-3 天的努力后找到了答案,现在发布它,以便它可以帮助其他人。 由于命令中的管道,我没有收到引发的异常 python 脚本 test.py

命令应该是: command = "set -o pipefail; python3 test.py |& tee test_output.txt"