コマンドラインのスクリプトインストール中に[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
これを試してください: 'echo y | dasht-docsets-install expressjs' – Cyrus
動作していないようです。 –
受け入れられた回答はあなたの特定のケースでは機能しますが、期待したことの中で自分の関数を直接呼び出したので問題がありました。したがって、expectは 'dasht-docsets-install'をexpectキーワードとして解釈します(存在しないため、エラーが発生します)。それを動作させるには 'spawn dasht-docsets-install expressjs 'と書かなければなりません。また、sendを検証するには、 'send" y \ r "' – Aserre