bashスクリプトで標準入力からテキストを読み込む

一行ずつ対話的に読み込む際はreadコマンドだけです。 複数行のテキストを一気に読み込んで処理する場合はEOFまでreadを繰り返します。

#!/bin/sh
buf=""
while read f; do
  line=$f
  # do something to $line if necessary
  buf=`cat <<EOM
$buf
$line
EOM`
done

# do something to $buf if necessary
echo "$buf"