From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: To: community@altlinux.ru Subject: Re: [Comm] =?koi8-r?b?0MXSxc7B0NLB18zFzsnF?= =?koi8-r?b?INfZ18/EwSDXIMzPxw==?= References: <20021025130958.9BADC2EE5D@mail.off-club.com> <20021025230908.5aaf5f12.sinom@ktk.ru> <13212772395.20021025203149@udm.ru> <20021026000512.3b46bfa0.sinom@ktk.ru> <7316039103.20021025212616@udm.ru> <20021026005744.403356f1.sinom@ktk.ru> <11720311185.20021025223728@udm.ru> <87bs5i5md0.fsf@lenin.doma.net> <20021026194927.0302e67b.sinom@ktk.ru> From: Anton Kovalenko Date: Sun, 27 Oct 2002 02:11:08 +0300 In-Reply-To: <20021026194927.0302e67b.sinom@ktk.ru> (Sinom's message of "Sat, 26 Oct 2002 19:49:27 +0800") Message-ID: <878z0kiynn.fsf@lenin.doma.net> User-Agent: Gnus/5.090006 (Oort Gnus v0.06) Emacs/21.2 (i386-debian-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------=_1035673875-97454-0" X-Scanned-By: HotBox.Ru Sender: community-admin@altlinux.ru Errors-To: community-admin@altlinux.ru X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: community@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format... ------------=_1035673875-97454-0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Content-Disposition: inline >>>>> Sinom writes: >> do_something 2> >(tee stderr.log >&2) |tee stdout.log ) > >(tee stderrout.log) 2>&1 >> >> Справедливости ради надо сказать, что zsh от таких извращений слегка >> фигеет, и не делает wait везде, где надо бы. Hо вот собственно bash -- >> срабатывает нормально. Забыл первую открывающую скобку. Прошу извинить. (do_something 2> >(tee stderr.log >&2) | tee stdout.log ) > >(tee stderrout.log) 2>&1 > Можно попросить расшифровать? 2> - stderr перенаправляет куда? > почему пишется два символа ">" с пробелом между ними "> >" >(command) подставляет "файл" из /dev/fd, который направлен на stdin команды command. 2> >(command) перенаправление stderr текущей команды в этот файл. (do_something 2> >(tee stderr.log >&2) | tee stdout.log ) Эта конструкция выполнится в subshell'е. Здесь мы перенаправляем do_something's stderr на вход "tee stderr.log", а stdout "tee stderr.log" выводим на stderr , чтобы он "проскочил мимо" команды tee stdout.log > >(tee stderrout.log) 2>&1 Здесь мы направляем stdout на (tee stderrout.log), а затем перенаправляем в ту же сторону и stderr. -- With Best Wishes, Anton Kovalenko /* http://kovalenko.webzone.ru */ #!/usr/bin/wish - best wish I have for you! ------------------ Get free mailbox 20 Mb at http://www.hotbox.ru ------------=_1035673875-97454-0--