web-dev-qa-db-ja.com

bashスクリプトでEnterキーを押してシミュレートする

いくつかのコマンドを実行する非常にシンプルなbashスクリプトを作成しました。これらのコマンドの1つでは、実行時にユーザー入力が必要です。つまり、ユーザーに「何とか何とかしますか?」.

実行中に入力または何かを待つ必要はありません。キープレスを送信するだけで十分で、入力バッファが残りを処理します。

83
tobbr
echo -ne '\n' | <yourfinecommandhere>

または、エコーが生成する暗黙的な改行を利用する(Marcinに感謝)

echo | <yourfinecommandhere>

これで、単に--skオプションを使用できます。

--sk--skip-keypress各テストの後にキーを押すのを待たない

すなわちSudo rkhunter --sk --checkall

120
Tilman Vogel

yesコマンドが役立つ場合があります。

man yesをご覧ください

38
pavium

yes のみを使用できます。

# yes "" | someCommand
27
David Hamner

expectを使用した使用例は次のとおりです。

#!/usr/bin/expect
set timeout 360
spawn my_command # Replace with your command.
expect "Do you want to continue?" { send "\r" }

チェック: man expect 詳細については。

21
kenorb

expectman expectを使用できます)を使用できます。

11
barti_ddu