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