5

在后台启动交互式 python 控制台时,我遇到了一个奇怪的问题。从后台恢复解释器后,它不会显示我输入的任何文本(即它只显示 >>> 提示,尽管它会解释我写的任何内容。按 [enter] 会在同一条上创建另一个 >>> 提示线)。

重现问题的一种简单方法是键入:

python &
fg

如果在前台启动程序,放到后台,再回到前台,就不会出现这个问题:

python
[ctrl-z]
bg
fg

如果您想知道为什么要在后台启动交互式解释器,请考虑以下场景:

我有一个需要很长时间才能运行的模拟,但完成后,我想与结果进行交互。于是,我开始了这个程序:

python -i simulation.py &
fg #(after it's finished running)

简单的解决方案是在前台启动它,将其移至后台,然后再将其带到前台,但我只是想知道为什么会发生这种情况。

4

1 回答 1

2

将解释器置于前台后,考虑执行以下命令以强制终端 ECHO 模式:

import termios
attr = termios.tcgetattr(1)
attr[3] = attr[3] | termios.ECHO
termios.tcsetattr(1, termios.TCSANOW, attr)
于 2013-11-04T22:19:08.413 回答