homework < data.in > results.out 2> err.msgs
В stdin команды homework попадает файл data.in
stdout — в results.out
stderr — в err.msgs
Чтобы объединить stderr с stdout - нужно:
homework < data.in > results.out 2>&1
# stderr(2) в stdout(&1)
Про амперсанд
&
Если в примере выше не будет амперсанда
&
— stderr запишется в файл с названием1
+ пример выше приведен просто для понимания в дальнейшем такого кода. Но есть более распространенная и удобная версия объединения stdout и stderr:
homework < data.in &> results.out
Соус: Книга Bash и кибербезопасность → Глава 1. Работа с командной строкой → Основы работы с командной строкой → Перенаправление и конвейер