次のように構成された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