これがyesコマンドの目的です。y1行に1つずつ無期限に出力されるため、yes / noの質問をするコマンドにパイプすることができます。
yes | /opt/MNG/MNGVIEWHP/fe/uninstall
これでyすべての質問に答えられます。答えるためにn、すべての質問に、交換してくださいyesとyes n。定義済みのミックスのためにyとn、あなたは置き換えることができyesて:
printf '%s\n' y n n y y n...
または次のように実行します。
/opt/MNG/MNGVIEWHP/fe/uninstall << 'EOF'
y
n
n
y
y
n
EOF
答えが10秒以内に読めないようにする必要がある場合は、次のようにします。
(sleep 10; echo y; sleep 2; echo n;...) | /opt/MNG/MNGVIEWHP/fe/uninstall
しかし、おそらくそれは必要ではないでしょうy、パイプに書き込むuninstallとき、それがそれを読みたいときにいつでもそれを読むためにそこに行くでしょう、それがそれを読む準備ができるのを待つ必要がありそうもないでしょう。例外はuninstall、質問する前に入力をフラッシュすることを決定した場合です。
それらはすべて、uninstallコマンドが各回答を標準入力から1行の入力として読み取るだけであると想定しています。
より複雑なケースでは、コマンドがttyデバイスから直接回答を読み取る場合や、(たとえば、コマンドの出力に基づいて)条件付きで回答を提供する必要がある場合は、expectまたはzshのようなものを使用しますzpty。
多くの対話型プログラムは、いくつかのオプションを渡されると、いくつかの非対話型モードに入る可能性があることに注意してください。問題を回避するために多大な労力を費やす前に、まずマニュアルを確認することをお勧めします。
#! /bin/bash -代わりに#!/usr/bin