「cat file while read line; do … done」のループ内で、外部の変数を書き換えてもループ後に反映されない理由として正しいものはどれか。

パイプで繋がれたコマンド群はそれぞれサブシェルで動作するため、親シェルの変数は変更できない。