Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Possible redirection bug in zsh 5x
- X-seq: zsh-workers 38101
- From: Kynn Jones <kynnjo@xxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: Possible redirection bug in zsh 5x
- Date: Sun, 6 Mar 2016 12:22:12 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to; bh=Al2lnsAWOQzBP+NFpYR3nMsYe3vGaSadrxC7AbExgwk=; b=p61J6wqZq4gguajDO0LO9MpPhZ2IWdHTpw5I2zGrzYPaA1cQlD/vA/+/x9E7ZMwYty Np7EptTQFn5U11r7yCjmSxt5+EI/4GqnoqsU1n0qB2QtDwiEcNCPXm/ysmSGbwKM/I1k f2YErxbjw53x4MBYNcGzblsQ1aorCj6F0xIdy8r/IJpAW5b+wg5ANxZKFE0x2IQnKTQ5 wVEARspULNUAxSKmZPzvST5nKEHUWLEC3n+/rX1M5i+AnJbkPNCmtAl6SIkGlPSvjvG1 kyyHaxPvpoY/Eq9Uds2UjckdGIbjXoPjg/UnHAZQZ8fxCt6sqBL7jscltE0WfR2HkCcY kn1A==
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
(NB: I originally posted something very close to the message below as
a unix.stackexchange.com question, but it got no answers. I took this
as confirmation that this may indeed be a bug.)
---
The following command produces different outputs in zsh v. 4.x and 5.x:
{
(
printf "X\nY\n"
printf "WARNING: foo\nWARNING: bar\n" >&2
printf "1\n2\n"
) 2>&1 >&3 | grep -v foo >&2
} 3>&1
(This code is supposed to illustrate how to selectively suppress some
of the output sent to stderr by a program; in this case, the warning
`foo` is being suppressed selectively, while the warning `bar` is
allowed to go through; note that in the end, `stderr` and `stdout`
streams remain separate.)
On v 4.x the output I see at the terminal is as desired/expected:
X
Y
1
2
WARNING: bar
(You may see a different ordering of the `WARNING: bar` line relative
to the other ones.)
[NB: as pointed out in a comment to my unix.stackexchange.com
question, both bash and dash also produce the output shown above.]
On v 5.0.7 (Debian) and 5.1.1 (Darwin), however, what I see at the
terminal is this:
X
Y
1
2
WARNING: bar
X
Y
1
2
IOW, the lines that should be sent to `stdout` appear twice.
I figure there are three possibilities:
1. this is a bug in v. 5.x (in which case my question is: is there a
workaround?)
2. I have not properly configured my v. 5.x zsh (in which case my
question is: how should I configure my v. 5.x zsh to get the desired
behavior?);
3. [very unlikely, in light of the results for bash and dash] there
is a bug in v. 4.x, but not in v. 5.x, that masked a bug in my code
(in which case my question is: how could I fix my code to get the
desired behavior in v 5.x?)
Thank you in advance,
kj
Messages sorted by:
Reverse Date,
Date,
Thread,
Author