pexpect interact() 重复 bash 输出

pexpect interact() duplicated bash output

大家好!目前我正在尝试创建一个交互式 python 环境来调用 bash 脚本 - 使用 pexpect。出于解释的目的,让我们看看下面的代码和我相应的输出。它应该只生成一个 bash 的实例并回显 foobar。

import pexpect
p = pexpect.spawn("/bin/bash -i -c 'echo foobar'")
p.interact()

这给了我输出

foobar
foobar

这(至少对我而言)不是预期的输出,因为它似乎重复了输出行。这个问题更进一步:一些脚本调用用空行淹没了终端,这是非常不幸的,因为我想在屏幕上显示上次调用的输出。我想这个问题的原因与我上面给出的例子有关。您可能认为我不需要使用 p.interact()。对于这个例子当然是正确的,但我的真实脚本需要是通用的并且用户交互是可以预期的。
我希望有人可以帮助我 - 提前致谢。

我自己找到了解决方案。似乎 pexpect 模块已经过时了。

sudo pip install --upgrade pexpect

解决了问题。