如何确定通过pexpect发送的命令的退出状态代码

问题描述 投票:4回答:2

在以下代码段中,如何找到make的退出代码?具体来说,我需要知道make是否失败或成功。感谢您的输入。

process = pexpect.spawn("/bin/bash")
process.expect("make\r")
expect pexpect
2个回答
4
投票

pexpect不了解make命令-它只是向bash发送文本。因此,您需要使用bash的机制来确定退出代码-$?的值。所以你想要这样的东西:

process.sendline("make") # Note: issue commands with send, not expect
process.expect(prompt)
process.sendline("echo $?")
process.expect(prompt)
exitcode = process.before.strip()

0
投票

我不得不在我的最新项目中使用pexpect,并且想要获取退出代码,无法轻松找到解决方案,因为这是google的最高结果,我正在为此添加解决方案。

process = pexpect.spawn(command, cwd=work_dir)
process.expect(pexpect.EOF)
output = process.before

process.close()
exit_code = process.exitstatus

我也保存了输出,因为我正在运行bash脚本,并且退出代码保存在exit_code变量中。

© www.soinside.com 2019 - 2024. All rights reserved.