1. ホーム
  2. bash

[解決済み] ループ内でユーザー入力を読み取る

2022-10-29 13:32:34

質問

以下のようなbashスクリプトを持っています。

cat filename | while read line
do
    read input;
    echo $input;
done

が、これは明らかに正しい出力を与えていません。なぜなら、whileループで読み込むとき、I/Oリダイレクトの可能性があるため、ファイルfilenameから読み込もうとするからです。

同じことをする他の方法はありますか?

どのように解決するのですか?

制御している端末装置から読み出す。

read input </dev/tty

より詳細な情報は http://compgroups.net/comp.unix.shell/Fixing-stdin-inside-a-redirected-loop