Como gerar o tempo real de um comando (e nada mais)?

1

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
    
por user9474 29.09.2011 / 20:16

3 respostas

5

Você precisa capturar primeiro a saída de time . Então você pode processá-lo.

    
por 29.09.2011 / 20:20
3

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 ...

    
por 29.09.2011 / 20:31
0

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 }'
    
por 29.09.2011 / 20:33

Tags