我需要自动化一些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] "
,以便我决定要传回的答案。
答案 0 :(得分:1)