2016-12-16 3 views
0

コマンドラインのスクリプトインストール中に[y/N]プロンプトでyと応答しようとしています(-yはオプションではありません)。expectを使用してユーザー入力をエミュレートする

これまでのところ、私は次のようしている:

#!/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" 

を私はインストールするためにみとめ文書セットを持っており、一方だけが一度にインストールすることができ、すなわちI dasht-docsets-install expressjs vuejsなどできません。理想的には、docsetを手渡すことができるbash関数を作成したいと思います。

これは入力の処理を担当します。

ご協力いただければ幸いです。

dasht-docsets-install -f expressjs 

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

出典:github repo

+0

これを試してください: 'echo y | dasht-docsets-install expressjs' – Cyrus

+0

動作していないようです。 –

+1

受け入れられた回答はあなたの特定のケースでは機能しますが、期待したことの中で自分の関数を直接呼び出したので問題がありました。したがって、expectは 'dasht-docsets-install'をexpectキーワードとして解釈します(存在しないため、エラーが発生します)。それを動作させるには 'spawn dasht-docsets-install expressjs 'と書かなければなりません。また、sendを検証するには、 'send" y \ r "' – Aserre

答えて

0

はこれを使用してください。

+0

ありがとう、私はそれを逃したとは思わない。 –

関連する問題