2013-05-02 53 views

回答

8

閱讀您的評論,看起來你想讓第一個自動化,然後讓它請求休息。

您可能會或可能不會從該鏈接瞭解到這一點:

的管理腳本詢問讀取標準輸入。 Echo將其輸出傳遞給它的stdout,然後關閉。

你想傳遞迴應'是'標準輸出,然後從鍵盤讀取。

cat <(echo "yes") - | python manage.py 

將串聯(輸出一個,那麼下)的的echo yes內容(假裝這是一個文件),然後是標準輸入的內容。因此,您會得到第一個自動答案,然後是其他提示。

請注意,你甚至可以做到這一點不止一次:

cat <(echo "yes") - <(echo "no") - 

將輸出「是」,然後不管你輸入,直到你與CTL-d結束,其次是「沒有」,隨後無論你投入什麼,直到你以ctl-d結束。

+0

謝謝,非常好的解釋! – Bentley4 2013-05-02 21:33:19

1

最有可能的「蟒蛇manage.py刷新」預計額外的輸入讀書「是」,它沒有得到後,因爲「回聲‘是’,」飾面和其輸出文件關閉了。

你需要弄清楚還有什麼「python manage.py flush」期望並提供它的輸入。

+0

該命令輸出2是/否提示。我不知道如果在一個命令中給出多個提示,如果只有一個輸入提示是自動的,那麼該命令就會失敗。看起來合乎邏輯的是,它會輸入一個提示並繼續詢問第二個提示。 「yes」或「no」是順便提示的唯一的順序。 – Bentley4 2013-05-02 19:40:05

+0

在這些情況下,「是」命令可能會有用。 – spbnick 2013-05-02 19:51:03

11

我懷疑manage.py正在請求多行輸入。是否有理由不能使用

python manage.py flush --no-input 

as documented

+0

這並不直接回答我的問題,但它是我要使用的解決方案。 : ) 謝謝! – Bentley4 2013-05-02 19:41:54

+0

你有兩個答案,直接說明你給我們的錯誤:它需要比你給的更多的輸入。如果沒有你的進一步信息,那就像任何人都能猜到的一樣。 – msw 2013-05-02 20:32:48

+0

其他用戶只是假設我想要兩個提示,我沒有問(yes除了zebediah49)。我只要求在第一個提示中自動輸入。但是我可以更清楚明確地說我不想爲我想的第二個提示進行自動化。不過,我很感激你的意見。 – Bentley4 2013-05-02 21:35:02

4

這將工作,假設安裝yes命令(應該是): yes yes | python manage.py flush

但作爲mentionned: python manage.py flush --no-input 可能是更好的。

+2

+1假定無限系列的「是」不吃他的CMS>。< – msw 2013-05-02 20:34:15

+0

我知道yes命令,但是我不能在這裏使用它,因爲我不想對第二個命令回答yes。但我可以提供這個信息,所以很抱歉。 – Bentley4 2013-05-02 21:22:18