zsh-workers
 help / color / mirror / code / Atom feed
* Redirection with multiple coprocs
@ 2000-10-03 16:42 Bart Schaefer
  0 siblings, 0 replies; only message in thread
From: Bart Schaefer @ 2000-10-03 16:42 UTC (permalink / raw)
  To: zsh-workers

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   


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2000-10-03 16:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-10-03 16:42 Redirection with multiple coprocs Bart Schaefer

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).