Перенаправления и конвейеры bash

Насчет перенаправлений stdin, stdout, stderr: их, к слову, можно использовать в одну строку:

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. Работа с командной строкой Основы работы с командной строкой Перенаправление и конвейер

bash