Если я понимаю, о чем вы просите, то это подойдет. Я использую команды ls ~
и tee
в качестве запасных для . /foo
и bar
, но общая форма того, что вы хотите, такова:
$ ( time ./foo ) |& bar
NOTE: Вывод time
уже присоединяется в конце любого вывода из ./foo
, он просто делается это на STDERR. Чтобы перенаправить его через трубу, вам нужно объединить STDERR с STDOUT. Для этого можно использовать либо |&
, либо 2>&1
.
$ ( time ./foo ) |& bar
-or-
$ ( time ./foo ) 2>&1 | bar
$ ( time ls . ) |& tee cmd.log
cmd.log
file1
file2
file3
file4
file5
real 0m0.005s
user 0m0.000s
sys 0m0.001s
А вот содержимое файла cmd.log
, созданного командой tee
.
$ more cmd.log
cmd.log
file1
file2
file3
file4
file5
real 0m0.005s
user 0m0.000s
sys 0m0.001s