Существует ли способ передать вывод по каналу одной программы в две других программы?

Вы могли использовать раздел в существующей системе Linux. Это совпало бы с использованием временной системы. Однако принятие Вас использует пустую систему, Вам будет нужно что-то для создания программного обеспечения LFS с. Вы не можете только отбросить компилятор на разделе и начать крутиться далеко. Вам нужно немного больше, чем это. Ядро, например, и грузоподъемность судна библиотек :)

28
08.06.2012, 04:13
4 ответа

Замена процесса.

... | tee >(prog2) | ...
28
27.01.2020, 19:39
  • 1
    IIRC, который является расширением удара и не найденный в стандартном POSIX sh. –  Simon Richter 08.06.2012, 10:01
  • 2
    @SimonRichter, Это - ksh93 расширение, также найденное в ударе и zsh. –  Gilles 'SO- stop being evil' 09.06.2012, 02:45

Подобный ответу Ignacio, Вы могли использовать временное использование именованного канала mkfifo(1).

mkfifo /tmp/teedoff.$$; cmd | tee /tmp/teedoff.$$ | prog2 & sleep 1; prog3 < /tmp/teedoff.$$; rm /tmp/teedoff.$$

Это является более подробным, но это работало бы над системами, которые не имеют замены процесса, как dash. sleep 1 должен обработать любые условия состязания.

16
27.01.2020, 19:39
[1121157]Существует небольшая утилита [1121651]ptee[1121652], которая делает свою работу: [12142]Вместо записи в файлы [1121653]ptee[1121654] записывает на все fds, которые даются в командной строке. [12143]ptee[1121656] является частью [1121657]pipexec[1121658].[112111162].
6
27.01.2020, 19:39
[1122136] Вам не нужны ни башизмы, ни специальные файлы - в любом случае, не в Linux:

Я отметил результаты [1122624]grep[1122625], выделенные для меня, чтобы показать, что это были не только три результата из одного и того же потока, но и результат отдельных совпадений процесса [1122626]grep[1122627]. [1122139]

4
27.01.2020, 19:39

Теги

Похожие вопросы