Do código bash
command1 | tee >(command2) | command3
Eu quero capturar a saída de command2
in var2
e a saída de command3
in var3
.
command1
é limitado por E/S e os outros comandos são caros, mas podem começar a funcionar antes do command1
término.
A ordem das saídas de command2
e command3
não são fixas. Então eu tentei usar descritores de arquivo em
read -r var2 <<< var3=(command1 | tee >(command2 >&3) | command3) 3>&1
ou
{read -u 3 -r var2; read -r var3} <<< command1 | tee >(command2 >&3) | command3
mas não teve sucesso.
Existe uma maneira de executar os três comandos em paralelo, armazenar os resultados em variáveis diferentes e não criar arquivos temporários?