2016-12-16 45 views
0

我在命令行的腳本安裝期間(-y不是一個選項)嘗試在[y/N]提示中回答y使用期望來模擬用戶輸入

到目前爲止,我有以下幾點:

#!/bin/bash 
expect << EOF 
dasht-docsets-install expressjs 
expect "[y/N]" 
send "y" 
EOF 

但是,這給出了以下的輸出:

invalid command name "dasht-docsets-install" 
    while executing 
"dasht-docsets-install expressjs" 

我不得不多發docsets安裝,只有一個能在同一時間,即我被安裝不能去dasht-docsets-install expressjs vuejs等...所以理想情況下,我想創建一個bash函數,可以這樣遞docset像這樣:

doc_install expressjs 

這將負責處理輸入。

任何幫助,將不勝感激。

+0

試試這個:'echo y | dasht-docsets-install expressjs' – Cyrus

+0

似乎不起作用。 –

+1

雖然接受的答案適用於您的特定情況,但您的問題是由於您直接在預期內調用了您的功能而導致的。期望將因此將'dasht-docsets-install'解釋爲預期關鍵字(不存在並且引發錯誤)。你應該寫'spawn dasht-docsets-install expressjs'來使它工作。另外,爲了驗證你的發送,你需要寫'send'y \ r「' – Aserre

回答

0

使用此:

dasht-docsets-install -f expressjs 

# `-f`, `--force` 
# Forces the operation by overriding the interactive confirmation prompt. 

來源:github repo

+0

謝謝,不敢相信我錯過了。 –