>>>>> 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