ターゲット サーバーに Expect をインストールできない場合があります。これは、たとえば Jenkins ジョブを作成する場合によくあります。
もしそうなら、私は askubuntu.com の次の回答のようなものを検討します:
https://askubuntu.com/questions/338857/automatically-enter-input-in-command-line
printf 'y\nyes\nno\nmaybe\n' | ./script_that_needs_user_input
まれに、このコマンドでは、文字の後にユーザーが Enter キーを押す必要がないことに注意してください。その場合、改行は省略してください:
printf 'yyy' | ./script_that_needs_user_input
完全を期すために、ヒアドキュメントを使用することもできます:
./script_that_needs_user_input << EOF
y
y
y
EOF
または、シェルがサポートしている場合は、here 文字列:
./script <<< "y
y
y
"
または、1 行に 1 つの入力を含むファイルを作成することもできます:
./script < inputfile
繰り返しになりますが、この回答に対するすべてのクレジットは、askubuntu.com の回答の作成者である lesmana に帰属します。
echo y | command
動作するはずです。
また、一部のインストーラーには「auto-yes」フラグがあります。 -y
です apt-get
の場合
'yes' コマンドは 'y' (またはあなたが要求したもの) を無期限にエコーします。次のように使用します:
yes | command-that-asks-for-input
または、大文字の「Y」が必要な場合:
yes Y | command-that-asks-for-input
'N' を渡したい場合でも yes
を使用できます :
yes N | command-that-asks-for-input