Provavelmente é mais fácil entender se você usou tee
primeiro. Essa ferramenta antiga e útil leva a entrada padrão e grava em vários arquivos, além da saída padrão. Os seguintes:
echo "Hello world" | tee one two
Criará dois arquivos, nomeados one
e two
, ambos contendo a sequência Hello world
. Também será impresso no seu terminal.
Agora pee
executa uma função semelhante, mas em vez de redirecionar a saída para vários arquivos, ela redireciona para vários comandos secundários, ala pipes. Difere um pouco do tee
fato de não enviar o stdin original para o stdout porque não faria sentido combiná-lo com a saída dos comandos secundários. O seguinte exemplo muito simples:
echo "Hello world" | pee cat cat
Irá gerar a string Hello world
para o seu terminal duas vezes. Isso ocorre porque cada uma das duas instâncias de cat
recebe a saída padrão e faz o que cat
faz, que é impresso.
stdin
e fornecer clones para todos os scripts que definem o padrão do nome do arquivo, o bash puro pode fazer isso? AFAIU seria expandir o asterisco dentro dos colchetes causando algo como otee >(app1 app2 app3 app4)
que não é o>(app1) >(app2) >(app3) >(app4)
que a sua resposta mostra