Se eu entendi o que você está pedindo, isso vai funcionar. Estou usando os comandos ls ~
e tee
como substitutos para ./foo
e bar
, mas a forma geral do que você quer é esta:
$ ( time ./foo ) |& bar
OBSERVAÇÃO: A saída de time
já está sendo anexada no final de qualquer saída de ./foo
, está sendo feita apenas no STDERR. Para redirecioná-lo através do tubo, você precisa combinar STDERR com STDOUT. Você pode usar |&
ou 2>&1
para fazer isso.
$ ( time ./foo ) |& bar
-or-
$ ( time ./foo ) 2>&1 | bar
Exemplo
$ ( time ls . ) |& tee cmd.log
cmd.log
file1
file2
file3
file4
file5
real 0m0.005s
user 0m0.000s
sys 0m0.001s
E aqui está o conteúdo do arquivo cmd.log
produzido por tee
.
$ more cmd.log
cmd.log
file1
file2
file3
file4
file5
real 0m0.005s
user 0m0.000s
sys 0m0.001s