Você precisa capturar primeiro a saída de time
. Então você pode processá-lo.
Como posso produzir o tempo real que um comando leva (e nada mais)?
Exemplo:
Isso não funcionará:
$ time -p sleep 2 | grep real
real 2.00
user 0.00
sys 0.00
Eu quero algo como:
$ print-real-time sleep 2
2.00
Você precisa capturar primeiro a saída de time
. Então você pode processá-lo.
Uma solução não específica do BASH (use explicitamente /usr/bin/time
, por isso não é o bash que consome tubos) -
/usr/bin/time -p some_command_or_subshell 2>&1 | grep real | awk '{print $2}'
Dependendo da natureza delicada de qualquer coisa que você forneça, você pode querer redirecionar a saída do seu comando subject para / dev / null ...
Aqui está uma solução hacky usando cut
para dividir os campos.
time -p sleep 2 | grep real | cut -f2 -d' '
Você também pode usar awk
:
time -p sleep 2 | grep real | awk '{ print $2 }'
Tags unix