[Comm] перенаправление вывода в лог
Anton Kovalenko
=?iso-8859-1?q?a=5Fkovalenko_=CE=C1_mtu-net=2Eru?=
Вс Окт 27 02:11:08 MSK 2002
>>>>> 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
Подробная информация о списке рассылки community