У меня есть процесс myProcess1
, который производит как выходы stdout, так и stderr. Я хочу подключить два выходных потока к двум различным нисходящим процессам: myProcess2
и myProcess3
, которые будут массировать данные, а затем выгружать результаты в два разных файла. Можно ли сделать это с помощью одной команды? Если нет, второй вариант будет состоять из двух отдельных команд, один для обработки stdout
, другой stderr
. В этом случае, первый запуск будет просто:Bash: как мне передать stdout и stderr одного процесса на два разных процесса?
myProcess1 | myProcess2 > results-out.txt
Что бы подобная команда для обработки stderr
? Thx
Может быть, стоит упомянуть, что вторая команда требует 'bash' и не будет работать с' sh' из-за подстановки процесса. –
Первый предполагает, что myProcess2 не имеет собственного выхода stderr. Если это произойдет, то оно будет объединено с stderr myProcess1 и передано в myprocess3. –
Если 'myProcess2' также пишет что-то в stderr, он будет входить в' myprocess3'. Чтобы исправить это, команда должна выглядеть как '{myProcess1 2> & 3 | myProcess2> results-out.txt; } 3> & 1 | myprocess3> results-err.txt' – Roman