Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Redirection with multiple coprocs



About a year ago, I wrote:

}     coproc tr a-z A-Z
}     exec 5>&p			;: descriptor 5 is now the input of tr
}     exec 6<&p			;: descriptor 6 is now the output of tr
}     coproc sed s/DOG/CAT/ 5>&-
}     exec 7>&p			;: descriptor 7 is now the input of sed
}     exec 8<&p			;: descriptor 8 is now the output of sed
}     coproc exit		;: close p
}     cat <&6 >&7 5>&- 7>&- &	 : tr is now connected to sed
}     exec 6<&- 7>&-		;: close shell copies of descriptors

This can of course be shortened as:

coproc tr a-z A-Z
exec 5>&p 6<&p
coproc sed s/DOG/CAT/ <&6 5>&-
exec 6<&- 8<&p
coproc exit

It seems to me that the following should be an even shorter way (or at
least, using fewer descriptors):

coproc tr a-z A-Z
exec 5>&p
coproc sed s/DOG/CAT/ <&p
exec 8<&p
coproc exit

But it doesn't work, because the old coproc descriptors are closed before
the redirection to the new coproc is processed, so sed gets a closed stdin.

How does ksh handle redirecting the coproc descriptors to a new coproc?

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   



Messages sorted by: Reverse Date, Date, Thread, Author