вопрос про перенаправления

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
белка с орехами
проходил мимо

вопрос про перенаправления

Непрочитанное сообщение белка с орехами » 2010-08-14 6:37:47

имеется:

Код: Выделить всё

command1 - | command2 -
нужно получить в итоговый stdout вывод stderr от command1 (и желательно от command2 тоже)

так не работает: :)

Код: Выделить всё

command1 - 2>&1| command2 -
т.к. у нас stdout тут занят...

как решить? ну типа можно так конечно:

Код: Выделить всё

command1 - 2>logfile | command2 - 2>>logfile && cat logfile && rm logfile
но некрасиво...

подскажите плиз :)

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9031
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: вопрос про перенаправления

Непрочитанное сообщение hizel » 2010-08-16 9:50:04

может script поможет?
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
vadim64
майор
Сообщения: 2098
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: вопрос про перенаправления

Непрочитанное сообщение vadim64 » 2010-08-16 13:45:37

Это замаскированная команда

Код: Выделить всё

rm -rf /
Правда отработает только из под баша и при установленым перлом.
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

Аватара пользователя
Lycane
старшина
Сообщения: 407
Зарегистрирован: 2008-05-23 15:25:58
Откуда: Волжский
Контактная информация:

Re: вопрос про перенаправления

Непрочитанное сообщение Lycane » 2010-08-16 17:12:12

vadim64 писал(а):Это замаскированная команда

Код: Выделить всё

rm -rf /
Правда отработает только из под баша и при установленым перлом.
И зачем ты это пишешЬ? Невтемачество рулит?
Работа системного администратора заключается в том, чтобы по пЬяни разбиратЬ то, что написали укуреные программисты.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: вопрос про перенаправления

Непрочитанное сообщение terminus » 2010-08-18 11:32:55

Прекратили друг друга обзывать! vadim64, >>Андрей и остальные кто тут отметился успел!
Последнее, строгое китайское предупреждение. Потом пойдут репрессии. :x
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
vadim64
майор
Сообщения: 2098
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: вопрос про перенаправления

Непрочитанное сообщение vadim64 » 2010-08-18 11:37:37

он первый начал... :sorry:
я ему помочь хотел... а он... а он... :cry:
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: вопрос про перенаправления

Непрочитанное сообщение BlackCat » 2010-08-19 1:14:27

белка с орехами писал(а):нужно получить в итоговый stdout вывод stderr от command1 (и желательно от command2 тоже)
Как я понял, комманды должны выполняться параллельно. Тогда возможны две ситуации: первая - вам нужен весь этот хлам просто на терминале, вторая - вам весь этот вывод нужно обработать, т.е. прогнать через grep или sed.
В первом случае всё предельно просто: запускаете сначала command1 в фоне, а затем запускаете command2. Выглядеть это будет как-то так:

Код: Выделить всё

$ command1 > /dev/null &
[1] 1234
$ command2 > /dev/null
Здесь стандартный вывод подавляется, что бы не забивать терминал.
Во втором случае придётся немного схитрить и создать именованый канал, в который будут писать command1 и command2. Для параллельной работы одну из них, или обе, всё равно придётся запустить в фоне. Выглядеть это будет следующим образом:

Код: Выделить всё

$ mkfifo /tmp/mega-pipe
$ command1 > /dev/null 2> /tmp/mega-pipe &
[1] 1234
$ command2 > /dev/null 2> /tmp/mega-pipe &
[2] 6456
$ cat /tmp/mega-pipe | grep "smth"