Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想在我的 Python 脚本中使用 bash 执行 shell 命令,在屏幕上获取实时打印消息。我使用以下行来执行此操作:
subprocess.Popen(my_commands, shell=True, stdout=sys.stdout, stderr=sys.stderr, executable='/bin/bash')
一切看起来都很好,期望在 shell 命令完成后,输入光标仍然不可见。我必须按 Enter 键才能再次激活 shell。那么错误是什么?
这是因为你有两个贝壳,shell=True并且/bin/bash
shell=True
/bin/bash
如果您设置shell=False,您将不会在控制台上看到输出。您将不得不使用PIPE和/或subprocess.communicate()获取输出(取决于您想要什么)。
shell=False
PIPE
subprocess.communicate()