From ff292af95f9bb6f07a56c162e583a145bbaa389d Mon Sep 17 00:00:00 2001 From: Stephane Chazelas Date: Sun, 23 Nov 2014 18:27:41 +0000 Subject: 33740: FAQ: another way of avoiding MULTIOs effects on pipes --- Etc/FAQ.yo | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'Etc') diff --git a/Etc/FAQ.yo b/Etc/FAQ.yo index 7d4b86ec3..eeb7c13de 100644 --- a/Etc/FAQ.yo +++ b/Etc/FAQ.yo @@ -1784,7 +1784,14 @@ sect(Why is my output duplicated with `tt(foo 2>&1 >foo.out | bar)'?) to both files when the redirector appears twice. What's going on in the first example is exactly the same, however the second redirector is disguised as a pipe. So if you want to turn this effect off, you need - to unset the option mytt(MULTIOS). + to unset the option mytt(MULTIOS), or alternatively write the following: + verb( + % { print output; print error >&2 } 2>&1 >&- >foo.out | sed 's/error/erratic/' + erratic + ) + By closing stdout with tt(>&-), we're cancelling the previous redirections + (to the pipe) and start anew with tt(>foo.out) instead of adding it as a + redirection target to stdout. sect(What are these `^' and `~' pattern characters, anyway?) -- cgit 1.4.1