[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