Wednesday, April 26, 2006

while loopではまる

やっているのは以下のようなことである。

cat file |
while read foo bar
do
rsh foo abc
done

fileは複数行あるのだが、どうしても最初の一行しか処理されない。
書きかたをかえて、forループにすると通るのだ。

rshの標準入力の問題なのである。
上のスクリプトは以下のようにしなければならない。

cat file |
while read foo bar
do
rsh foo abc done

rsh -nでも同じはずだな。ようするに、パイプの標準入力を全部rshが食つてしまうので一行しか処理されないということらしい。

ーーーーー
昔のブログからのコピペです。日付も当時のもの。