Как ученик Вы хотите посмотреть на что-то, к чему можно корректироваться легко и также дать Вам тот же пользовательский опыт, как Вы вошли бы в окна, я предложу, чтобы Вы установили OpenSUSE 11.x или 10.x, это - аккуратная ОС, и он не должен давать Вам слишком много знающего досконально горя.
Ваш пример не работает, потому что в цикле Вы перенаправляете stderr с 2>
. И затем когда Вы пытаетесь перенаправить его снова вне цикла нет ничего в потоке для перенаправления.
Казалось бы, что это - то, что Вы на самом деле хотели сделать:
cat infile | while read line; do
echo >&2 'log ' $line
echo $line
done > outfile 2> errfile
Это должно перенаправить все ошибки из цикла с условием продолжения как ожидалось. Если Вы уже не перенаправили ошибки в цикле как пример в Вашем вопросе.