为什么Popen需要按回车才能返回shell

0 投票
1 回答
743 浏览
提问于 2025-04-17 15:13

我想在我的Python脚本中用bash执行一些命令,并且希望能实时看到输出信息。我用下面这行代码来实现:

subprocess.Popen(my_commands, shell=True, stdout=sys.stdout, stderr=sys.stderr, executable='/bin/bash')

一切看起来都不错,但在shell命令执行完后,输入光标还是看不见。我必须按一下回车键才能让shell重新激活。那么这是哪里出错了呢?

相关问题:

1 个回答

0

这是因为你使用了两个命令行环境,一个是 shell=True,另一个是 /bin/bash

如果你把 shell 设置为 False,那么你在控制台上就看不到输出了。你需要使用 PIPE 和/或 subprocess.communicate() 来获取输出,这取决于你想要什么。

撰写回答