bash パイプでのループ内の変数と外の変数

地味につまずいてしまったので


cat $FILE | while read hogehoge do echo $hogehoge done echo $hogehoge

この場合 ループ内の hogehoge は表示されるか ループ外のファイルは表示されない
理由は パイプで cat $file と while read hogehoge を繋いでいるがパイプで引き渡す時に今までと別のプロセスで行ってるらしくそのプロセス内の $hogehoge と 元来のこのスクリプトの $hogehoge で echo しているので後者の方は表示されないとのこと。
この場合は

for hogehoge in `cat $FILE_PATH`
do
echo $hogehoge
done
echo $hogehoge

みたいにしてあげると恐らく解消される。