Это не работает:
$ head file | tee >(sort >&3) | paste <(cat <&3) -
bash: 3: Bad file descriptor
но я надеюсь, что очевидно, что он должен делать, эквивалент:
$ head file | sort >temp1
$ head file >temp2
$ paste temp1 temp2
Как правильно создать и использовать эту параллельную трубу?
(Предположим, «голова» представляет собой дорогостоящую операцию, и я знаю об опасностях тупика.)
Ответы:
Я обнаружил, что явное создание другого канала сначала делает то, что я хотел сделать:
Потребность в "sleep" и использование "$ pipe3" вместо "& 3" делает его немного менее элегантным.
источник