我需要自动化一些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] "
,这样我就可以决定返回什么答案。你知道吗
这就是
expect
擅长的:https://likegeeks.com/expect-command/
期待与抨击 https://unix.stackexchange.com/questions/351446/bash-and-expect-in-the-same-script
相关问题 更多 >
编程相关推荐