Есть некий поток рождаемый ./getdata, мне его надо пропарсить в ./parsedata. Что-то вроде этого:
./getdata | ./parsedata
При этом, сам поток мне надо сохранить где-нибудь, на случай если возникнет ошибка парсинга. При этом сделать это в parsedata я не могу.
(1) Есть ли стандартное решение вида:
./getdata | save_and_echo -f backupfile.txt | ./parsedata
чтобы в файл сохранила и дальше в stdout свой передала. И на SIGPIPE не реагировала (если ./parsedata отвалился).
(2) Можно ли средствами bourne shell это сделать?
Читаю в документации:
[n1]>&n2 duplicate stdout (or file descriptor n1) to file descriptor n2
Пытаюсь выполнить:
./getdata 3>backupfile.txt >&3 | ./parsedata
при этом до parsedata данные не доходят, а оседают в backupfile.txt. Может быть, я неправильно понимаю смысл duplicate stdout? Это не данные дублируются, а сам дескриптор?