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