npub1sg4rcvkxkp3sx7f0ex8rtdd9ylcdd2fchtfm22fy45h4w02p306qq7xslc (npub1sg4…xslc) Semantically I am thinking of something like:
a | b | c 1| d 1| e 2| f
which would pipe the output of a into b, and the output of b into c, d, and e, and the output of c into f. This would intermix the output of d, e, and f into stdout because nothing is capturing their outputs.
A similar indexing could be used for redirection.
a | b | c 1| d 1| e 2| f 3> d.log 4> e.log
This would write the stdout of d and e to d.log and e.log respectively, and only the output of f would be displayed.
As for actual syntax to do this, I think the pipe-bracket syntax you use for selecting a fd to pipe would actually be perfect for this. I am having a hard time thinking of another syntax that I think would be a great fit for this feature.