Em bash
, é um pouco complicado:
command 2> >(tee err) 1> >(tee out) | tee >all
Aqui, precisamos da substituição de processos >(...)
e tee
para contornar o problema . Com a substituição do processo, o processo tee
é anexado ao canal correspondente. tee
, em seguida, grava as linhas no arquivo e imprime então no STDOUT
. Portanto, depois de gravar nos arquivos, STDERR
e STDOUT
serão impressos em STDOUT
. Em bash
, não podemos usar vários redirecionamentos do mesmo canal em um comando. É por isso que precisamos canalizar essa saída para tee
novamente, que então apenas imprime.
Dentro de zsh
(observe que a opção MULTIOS
deve ser definida, que é detida em zsh
):
command >out 2>err &>all