読み込み中にループ内のキーボード入力を待ちます。

読み込み中にループ内のキーボード入力を待ちます。

次のように構成されたbashスクリプトがあります。

while read foo bar baz;
do
    echo "Processing $foo $bar $baz"
    # more code here
done < /etc/somefile

ループ内でスクリプトにキーボード入力を待つようにしたいと思います(デフォルトでは「続けるにはEnterキーを押してください」)。しかし、ループ内の次のコードは

echo "Press [ENTER] to continue"
read -s

スクリプトがそこで停止することはありません。明らかに、キーボードではなく提供されたファイルから入力を受け取ります。キーボードから強制的に読むにはどうすればよいですか?

ベストアンサー1

read明示的に指定しない限り、ファイルをループに入力すると、ループのすべてのインスタンスに影響します。以下はうまくいきます:

echo "Press [ENTER] to continue"
read -s < /dev/tty

おすすめ記事