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