Вы можете сделать это следующим образом
python3 generate.py | tee /dev/stderr | python3 sum.py
Но и "/ dev / stderr", и "/ dev / tty" являются специальным "файлом устройства", и мы должны избегать его использования таким образом.
Это проще проиллюстрировать на примере. Если мы создаем цепочечную команду с конвейером, обычное ожидание таково, что весь цепочечный конвейер будет вести себя как одна связная команда (весь конвейер принимает входную форму stdin и записывает весь вывод в stdout, а ошибки - в stderr).
Если я добавлю «| w c -l» в конце (считая количество строк), он будет ожидать, что вернет номер строки как для «generate.py», так и «sum.py» .
Но так работать не будет.
python3 generate.py | tee /dev/stderr | python3 sum.py | wc -l
Вывод w c будет только "1", что относится к одной строке из "sum.py".
О "/ dev / tty", это относится к файлу устройства "управляющего терминала". Вы можете обратиться к это для получения дополнительной информации. Но по сути это не «файл устройства», который должен использоваться для генерации вывода