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

2024-05-10 01:01:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要自动化一些bash脚本,这些脚本涉及到用y/n回答read提示。你知道吗

我尝试将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] ",这样我就可以决定返回什么答案。你知道吗


Tags: 文本脚本bash内容read管道进程stderr