如何将'yes'传递给python manage.py flush?

Ben*_*ey4 8 django bash prompt

根据这个关于管道输入的StackOverflow线程,运行echo "yes" | command应该传递yes给命令的第一个提示符.但是,echo "yes" | python manage.py flush会产生错误

EOFError: EOF when reading a line.
Run Code Online (Sandbox Code Playgroud)

msw*_*msw 23

我怀疑manage.py正在请求多行输入.有没有理由你不能使用

 python manage.py flush --no-input
Run Code Online (Sandbox Code Playgroud)

记录吗?


zeb*_*h49 12

阅读你的评论,似乎你想让第一个自动化,然后让它要求其余的.

您可能已经或可能没有从该链接中了解到这一点:

管理脚本要求输入stdin.Echo将其输出传递给它的标准输出,然后关闭.

你想将回显的'yes'传递给stdout,然后从键盘读取.

cat <(echo "yes") - | python manage.py
Run Code Online (Sandbox Code Playgroud)

将连接(从一个输出,然后是下一个)内容echo yes(假装它是一个文件),然后是stdin的内容.结果,您获得了第一个自动答案,然后是其余的提示.

请注意,您甚至可以多次执行此操作:

cat <(echo "yes") - <(echo "no") -
Run Code Online (Sandbox Code Playgroud)

将输出"是",然后输入您输入的内容,直到您以ctl-d结束,然后是"否",接着输入任何内容,直到您以ctl-d结束.


Jul*_*ier 5

假设已安装yes命令(应该是),这将起作用: yes yes | python manage.py flush

但是如前所述: python manage.py flush --no-input 可能更好。

  • +1假定无数个“是”不会吃掉他的CMS&gt;。&lt; (2认同)