2016-12-29 67 views
1

我正在研究一個shell腳本,它有很多網絡調用和安裝。當它被執行時,我需要爲每個提示輸入yes/no。這很好。檢測並輸入shell腳本中的提示

但現在我有一個要求運行它爲cron。在這種情況下,我將無法爲每個出現的提示提供輸入。 有沒有什麼辦法可以讓這個自動化或者在腳本中有一些知道提示已經出現的機制?

+1

如何重新設計您的腳本以接受選項,以便它不需要用戶操作? –

回答

3

使用yes命令回答交互式提示,

yes Y | ./script.sh 

上述語法不斷把字符串Y所有的提示。您可以在yes之後根據需要傳遞字符串。

您也可以使用expect工具,但您需要知道確切的提示信息以進行捕獲並相應地進行響應。如果你的提示很簡單,只需要一個簡單的輸入通過yes將是正確的工具。

您也可以使用bash內置的printf,但您需要手動添加響應,具體取決於您必須響應的提示數量,例如,

printf 'Y\nY\nY\n' | ./script.sh 

發送響應爲Y三個提示。再次,爲了避免手動執行此操作,請使用yes命令。