preciso obter o tempo de execução de um programa assim que ele é fechado e descobri isso
start=`date +"%M"`
while [ `pgrep vlc` ];do
echo vlcopen > /dev/null
done
stop=`date +"%M"`
[ $stop -lt $start ]&&time=$[ 60-$start+$stop ]||time=$[ $stop-$start ]
echo $time > time.txt
e faz o trabalho, mas é altamente ineficiente e exige muito uso do copo, como faço isso com mais eficiência
Responder1
Uma opção é usartime
Nota: Bash tem uma palavra-chave, time
então se você fizer isso:
time some command
aquele é usado, SHELL_GRAMMAR: bash
O que time
você encontra no homem time
geralmente é algo como/usr/bin/time
$ type -t time
keyword
Ponto principal no uso donão bashtime são recursos como -v
(GNU time
).
Veja também:O que significam 'real', 'user' e 'sys' na saída de time(1)?
Responder2
Use oSECONDS
variável bash:
SECONDS=0
# do stuff here, such as
sleep 5
duration=$SECONDS
echo "The stuff took $duration seconds to complete"
A eficiência é obtida eliminando a necessidade de gerar processos externos.