From: Bernd Eggink <eggink@uni-hamburg.de>
To: Sweth Chandramouli <sweth@astaroth.nit.gwu.edu>
Cc: zsh-users@math.gatech.edu
Subject: Re: exit value of intermediate program in pipe
Date: Mon, 04 May 1998 11:43:27 +0200 [thread overview]
Message-ID: <354D8DBF.F1F79617@rrz.uni-hamburg.de> (raw)
In-Reply-To: <19980504005404.54023@astaroth.nit.gwu.edu>
Sweth Chandramouli wrote:
> > The last problem is that grep won't exit until it sees EOF on its stdin,
> > but >&p dups the coproc input without actually closing it. So the grep
> > won't get EOF when blah exits. You have to shut it down some other way;
> > the only thing I've found is to start another coprocess. I don't know
> > if this is a bug, or what.
> at first, i wasn't sure if this would be a bug or not; it would
> make some conceptual sense to have a "coprocess exit" command that closed
> out a coprocess, and when i tried to find some docs on coproc, all i could
> find was the fmli coproc, which uses a similar cocreate/codestroy metaphor.
> as far as i can tell, though, zsh coproc just swallows the eof, since doing
> an
> echo "^D" >&p
> should otherwise have the same effect as "coproc exit", but doesn't. and
> _that_ is something that i _would_ consider a bug.
In ksh, the normal way to kill a coproc is
exec 3<&p 3<-
because just killing the job doesn't close the file descriptor. In
zsh-3.1.3, this doesn't work (a bug, IMHO), but you can kill the job
without getting problems.
> does this mean that you can only have one coproc open at a
> time? i could see situations where it might be useful to have more
> than one coproc open at once, rather than opening and closing the
> same two executables over and over in rapid succession.
You can have more than one coprocs at a time. Just copy the fd's:
coproc f
exec 3>&p 4<&p # or whatever numbers you like
coproc g
Now you can communicate with f and g separately:
print -u3 "to f"
read -u4 x # from f
print -p "to g"
read -p y # from g
Regards,
Bernd
--
Bernd Eggink
Regionales Rechenzentrum der Uni Hamburg
eggink@rrz.uni-hamburg.de
http://www.rrz.uni-hamburg.de/eggink/BEggink.html
next prev parent reply other threads:[~1998-05-04 9:47 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-05-02 22:24 Steve Talley
1998-05-03 0:50 ` Sweth Chandramouli
1998-05-03 1:38 ` Timothy J Luoma
1998-05-03 2:08 ` Bart Schaefer
1998-05-03 6:17 ` Sweth Chandramouli
1998-05-03 9:30 ` Bart Schaefer
1998-05-03 22:15 ` Sweth Chandramouli
1998-05-04 1:35 ` Bart Schaefer
1998-05-04 4:54 ` Sweth Chandramouli
1998-05-04 9:43 ` Bernd Eggink [this message]
1998-05-04 11:42 ` Bart Schaefer
1998-05-04 12:03 ` Bernd Eggink
1998-05-04 15:59 ` Bart Schaefer
1998-05-05 11:39 ` Bernd Eggink
1998-05-05 17:03 ` zsh vs. ksh coproc redirection semantics Bart Schaefer
1998-05-06 10:47 ` Bernd Eggink
1998-05-06 16:00 ` Bart Schaefer
1998-05-07 7:17 ` Zoltan Hidvegi
1998-05-07 8:34 ` Andrew Main
1998-05-07 9:26 ` Bart Schaefer
1998-05-07 9:34 ` Andrew Main
1998-05-07 17:02 ` Zoltan Hidvegi
1998-05-07 9:18 ` Bart Schaefer
1998-05-07 17:10 ` Zoltan Hidvegi
1998-05-05 11:54 exit value of intermediate program in pipe Bernd Eggink
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=354D8DBF.F1F79617@rrz.uni-hamburg.de \
--to=eggink@uni-hamburg.de \
--cc=sweth@astaroth.nit.gwu.edu \
--cc=zsh-users@math.gatech.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).