Это, вероятно, легче понять, если вы использовали в teeпервую очередь. Этот полезный старый инструмент принимает стандартный ввод и записывает в несколько файлов, плюс стандартный вывод. Последующий:
echo "Hello world" | tee one two
Создаст два файла с именем oneи two, оба, содержащие строку Hello world. Он также будет распечатан на ваш терминал.
Теперь peeвыполняет аналогичную функцию, но вместо перенаправления вывода на несколько файлов он перенаправляет на несколько вторичных команд, а именно конвейеры. Он немного отличается от teeтого, что он не отправляет исходный stdin на stdout, потому что не имеет смысла объединять его с выводом вторичных команд. Следующий очень простой пример:
echo "Hello world" | pee cat cat
Выводит строку Hello worldна ваш терминал дважды. Это потому, что каждый из двух экземпляров catполучает стандартный вывод и выполняет то cat, что делает, то есть печать.
stdinи приведения клонов к каждому сценарию, объединяющему шаблон имени файла, может ли это сделать чистый bash? AFAIU это расширило бы звездочку внутри скобок, что-то вродеtee >(app1 app2 app3 app4)этого не>(app1) >(app2) >(app3) >(app4)то, что показывает ваш ответ