como calcular o tempo de execução do script [duplicado]

2

Considere este redirecionamento de shell: %código% quando terminar, a sessão será interrompida, desconectada do host ou algo parecido. Eu quero saber quanto tempo dura a conexão. Como posso determinar isso?

    
por j0h 05.04.2016 / 16:53

2 respostas

2

A maioria dos shells tem um nome incorporado time , bash também. Ele mostrará o tempo humano real ( real ) que um processo leva com o tempo de CPU que o processo gasta no espaço do usuário ( user ) e no espaço do kernel ( sys ).

Então, execute o comando perpending time :

time telnet towel.blinkenlights.nl >> starWar

No final bash mostrará a hora no STDERR como:

real    XmX.XXXs
user    YmY.YYYs
sys     ZmZ.ZZZs

Mesmo se você estiver em um shell que não tenha o time incorporado, você tem o comando time externo /usr/bin/time do pacote time . O uso é o mesmo.

    
por heemayl 05.04.2016 / 17:06
3

Parece que você está procurando o time builtin:

$ help time
time: time [-p] pipeline
    Report time consumed by pipeline's execution.

    Execute PIPELINE and print a summary of the real time, user CPU time,
    and system CPU time spent executing PIPELINE when it terminates.

    Options:
      -p    print the timing summary in the portable Posix format

    The value of the TIMEFORMAT variable is used as the output format.

    Exit Status:
    The return status is the return status of PIPELINE.

Ele irá imprimir um relatório do tempo gasto por um comando. Por exemplo:

$ time sleep 3

real    0m3.027s
user    0m0.000s
sys     0m0.000s

O campo "real" é o tempo real que passa, o mesmo valor que você teria medido com um relógio. Então, você pode simplesmente fazer:

time telnet towel.blinkenlights.nl >> starWarz
    
por terdon 05.04.2016 / 17:05