Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Jun 2005 18:47:14 -0500
From:      Mike Meyer <mwm@mired.org>
To:        Christopher Black <cblack@securecrossing.com>
Cc:        questions@freebsd.org
Subject:   Re: Problems with command line scratch files in zsh
Message-ID:  <17068.51586.885638.130044@guru.mired.org>
In-Reply-To: <1118608948.705.6.camel@localhost>
References:  <17067.62149.92183.56827@guru.mired.org> <1118608948.705.6.camel@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help
[Format recovered from top posting.]

In <1118608948.705.6.camel@localhost>, Christopher Black <cblack@securecrossing.com> typed:

> On Sun, 2005-06-12 at 03:31 -0500, Mike Meyer wrote:
> > Since going to 5.x with devfd, I've noticed that some of the shell
> > constructs used by zsh (and other shells - I know zsh didn't invent
> > this) quit working. To wit:
> > 
> > guru% wc <(cat /etc/motd)
> > wc: /dev/fd/11: open: No such file or directory
> > 
> > The <(...) construct runs the pipe in (), and replaces the <(...) with
> > the name of the /dev/fd/ entry for the output of that pipe. The file
> > exists for the shell process doing all this. But when the comm process
> > tries to open the file to read the data, the file doesn't exist. This
> > is pretty nasty.
> > 
> > Anyone got any suggestions on how to fix this? A bug report with a
> > patch, maybe (I couldn't find any such bug report)? Workarounds? Maybe
> > this should go to hackers@freebsd.org?
> Why not just 'cat /etc/motd | wc' ?

Because I used a trivial example designed to illustrate the problem. A
less trivial example would be:

	comm -12 <(sort file_one) <(sort file_two)

Of course, this can also be rewritten using temp files instead of
pipes. But that will be longer, slower, and uglier.

This worked on 4.X. It ought to work on 5.X.

	<mike
-- 
Mike Meyer <mwm@mired.org>		http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?17068.51586.885638.130044>