我正在使用paramiko向远程主机发送SSH命令,并检查生成的错误代码 . 像这样的东西:

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=user)
chan = client.get_transport().open_session()
chan.settimeout(timeout)
chan.set_combine_stderr(True)
chan.get_pty()
chan.exec_command(command)
status = int(chan.recv_exit_status())
if status:
    # got a non-0 exit status if I'm in here
    sys.exit(status)
client.close()

这很有效,因为我能够发送SSH命令并返回进程的错误代码 . 但是,如果我发送涉及管道的SSH命令,例如'echo“hello”|,该怎么办? tee mylog.log'?在这种情况下,退出状态作为上述代码中的“status”变量返回,将是tee的退出状态,而不是通过管道输入的流程 . (显然这个echo命令不会失败,但实际上我将运行一个shell脚本并输入到tee,这是我很好奇的shell脚本的退出状态) .

现在在bash脚本中我可以使用$ {PIPESTATUS [0]} . 在paramiko有这样的吗?一种使用paramiko的方法,能够管道输入三通,并找出管道命令的退出状态?