Amazon Linuxインスタンスを使用し、データを入力して作業するすべてのプログラムをインストールするためのスクリプトがいくつかありますが、いくつかのプログラムは次のように尋ねます。
Do you want to continue [Y/n]?
インストールを一時停止します。すべての場合に自動で「Y」と答えたいのですが、どうすればいいのかがわかりました。
'yes'コマンド は、 'y'(または要求するもの)を無期限にエコーします。次のように使用します。
yes | command-that-asks-for-input
または、大文字の「Y」が必要な場合:
yes Y | command-that-asks-for-input
echo y | command
は動作するはずです。
また、一部のインストーラーには「auto-yes」フラグがあります。 Ubuntuの-y
はapt-get
です。
ターゲットサーバーにExpectをインストールできない場合があります。これは多くの場合、ジェンキンスの仕事を書くときです。
もしそうなら、私は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
完全を期すために、hereドキュメントも使用できます。
./script_that_needs_user_input << EOF
y
y
y
EOF
または、シェルがhere文字列をサポートしている場合:
./script <<< "y
y
y
"
または、1行に1つの入力があるファイルを作成できます。
./script < inputfile
繰り返しになりますが、この回答のすべての功績は askubuntu.comの回答 、lesmanaの著者に帰属します。
これは必要以上に複雑/重いかもしれませんが、それを行うための非常に柔軟な方法の1つは Expect (または別のプログラミング言語の派生物の1つ)のようなものを使用することです。
Expectは、テキストベースのアプリケーションを制御するために特別に設計された言語であり、まさにあなたが求めているものです。より複雑なこと(実際に次に何をする/答えるのかを実際に決定するロジックなど)が必要になった場合は、Expectが最適です。
デフォルトをそのまま使用する場合は、次を使用できます。
\n | ./Shell_being_run
Installコマンドで-y
を入力するだけです。
例:yum install <package_to_install> -y