スクリプト内でユーザー操作をバイパスするにはどうすればよいでしょうか?

スクリプト内でユーザー操作をバイパスするにはどうすればよいでしょうか?

シェル スクリプトを使用してプログラムのインストールを自動化しようとしています。コマンド ラインからのユーザー操作 (確認、はい/いいえなど) が必要な手順がいくつかあります。これを回避する最善の方法は何でしょうか。1 つの方法は、expect スクリプトを使用することだとわかっています。これを実行するより優れた/よりクリーンな方法があるかどうかを知りたいだけです。

答え1

対話が単純な場合、つまり標準入力から読み取るだけの場合は、特定の行をプログラムの入力に送信するだけです。

( echo yes ; echo 1024; echo yes ) | install.sh

答え2

stdinから読み込むだけではない何か(例えばftpログイン)をしたい場合は、期待する

答え3

別のスレッドから:

コマンドが入力の速さを気にせず、実際にコマンドと対話する必要がない場合は、ヒアドキュメントを使用できます。

例:

#!/bin/bash
command_you_want_to_execute <<EOD
interaction_1
intereaction_2
EOD

プログラムの出力に基づいて分岐する必要がある場合、またはプログラムがコマンドのタイミングに敏感な場合は、Expect が最適です。

関連情報