根据这个关于管道输入的 StackOverflow 线程,运行echo "yes" | command
应该传递yes
到命令的第一个提示符。但是,echo "yes" | python manage.py flush
会产生错误
EOFError: EOF when reading a line.
根据这个关于管道输入的 StackOverflow 线程,运行echo "yes" | command
应该传递yes
到命令的第一个提示符。但是,echo "yes" | python manage.py flush
会产生错误
EOFError: EOF when reading a line.
阅读您的评论,您似乎希望将第一个自动化,然后让它要求其余的。
您可能从该链接中学到了这一点,也可能没有:
管理脚本要求输入标准输入。Echo 将其输出传递到其标准输出,然后关闭。
您想将回显的“是”传递给标准输出,然后从键盘读取。
cat <(echo "yes") - | python manage.py
将连接(从一个输出,然后是下一个输出)echo yes
(假装它是一个文件)的内容,然后是标准输入的内容。结果,您会得到第一个自动答案,然后是其余的提示。
请注意,您甚至可以多次执行此操作:
cat <(echo "yes") - <(echo "no") -
将输出“yes”,然后是您输入的任何内容,直到您以 ctl-d 结尾,然后是“no”,然后是您输入的任何内容,直到您以 ctl-d 结尾。
假设安装了 yes 命令(应该是),这将起作用:
yes yes | python manage.py flush
但正如提到
python manage.py flush --no-input
的 : 可能更好。
很可能“python manage.py flush”在读取“yes”后需要额外的输入,但它没有得到,因为“echo”yes“”完成并且其输出文件已关闭。
您需要弄清楚“python manage.py flush”还有什么期望并在其输入中提供。