Предположим, что у меня есть программы P0
, P1
,... P(n-1)
для некоторых n > 0
. Как я могу легко перенаправить вывод программы Pi
в программу P(i+1 mod n)
для всех i
(0 <= i < n
)?
Например, скажем, у меня есть программа square
, которая многократно считывает число и печатает квадрат этого числа, а также программу calc
, которая иногда печатает число, после которого оно ожидает, что сможет прочитайте его квадрат. Как подключить эти программы так, чтобы всякий раз, когда calc
печатает число, квадраты square
возвращает его на calc
?
Изменить: я должен, вероятно, уточнить, что я имею в виду "легко". Именованное решение pipe/fifo - это тот, который действительно работает (и я использовал в прошлом), но на самом деле для этого требуется довольно много работы, если вы сравните его с использованием протокола bash. (Вам нужно получить еще не существующее имя файла, создать канал с таким именем, запустить "loop loop", очистить именованный канал.) Представьте, что вы больше не могли писать prog1 | prog2
и всегда должны были использовать именованные каналы для подключайте программы.
Я ищу что-то, что почти так же просто, как писать "нормальную" трубу. Например, что-то вроде { prog1 | prog2 } >&0
было бы здорово.