从父进程获取bash读取命令提示符文本

时间:2018-08-21 15:34:46

标签: python python-3.x bash

我需要自动化一些bash脚本,这些脚本涉及使用read来回答y/n的提示。

我尝试将stdout / stderr / stdin用管道传输到python脚本。写入stdin是可行的,但是由于某些原因,无法从stdout / stderr中读取提示文本吗? (我可以阅读bash或子流程输出的其他所有内容。)

>>> from subprocess import Popen, PIPE
>>> proc = Popen(['bash','-c','read -r -p "Update system? [y/N] " response'],stdout=PIPE,stdin=PIPE,stderr=PIPE)
>>> proc.stdout.read(10) # <-- hangs, same with stderr, any length

我期望我能够以某种方式阅读显示的提示"Update system? [y/N] ",以便我决定要传回的答案。

1 个答案:

答案 0 :(得分:1)