I'm dealing with a script, that invokes a noisy (lots of diagnostics on both stdout
and stderr
) program first, and then processes its output with other tools.
The program's verbosity makes it impossible to simply send its stdout to pipeline, so currently we use a temporary file -- a practice I'd like to end.
Instead of /tmp/foo
, we can ask the program to write the data to /dev/fd/N
-- and it will, no problem (it does not need to seek
the file, for example).
What noise it currently sends to stdout
and stderr
, can continue going there -- the operators are used to seeing it, and will be alarmed, if it disappears...
But how do I arrange for the descriptor N
to exist and be sent into the next program's stdin
?
noisy -o /dev/fd/N ?????| filter -i /dev/stdin
If this requires bash
, so be it, but I'd prefer a solution suitable for the entire sh-family, of course.