shell - programacion - scripts linux ejercicios resueltos
¿Cómo mido la duración en segundos en un script de shell? (5)
Aquí está el script para encontrar el tiempo transcurrido en milisegundos. Reemplace la línea de reposo 60 con el código que desea ejecutar.
a=0
while [ $a -lt 10 ]
do
START_TIME=`echo $(($(date +%s%N)/1000000))`
sleep 3
END_TIME=`echo $(($(date +%s%N)/1000000))`
ELAPSED_TIME=$(($END_TIME - $START_TIME))
echo $ELAPSED_TIME
if [ $a -eq 10 ]
then
break
fi
a=`expr $a + 1`
done
Deseo averiguar cuánto tarda una operación en un script de shell de Linux. ¿Cómo puedo hacer esto?
Intente con el siguiente ejemplo:
START_TIME=$SECONDS
# do something
sleep 65
ELAPSED_TIME=$(($SECONDS - $START_TIME))
echo "$(($ELAPSED_TIME/60)) min $(($ELAPSED_TIME%60)) sec"
#> 1 min 5 sec
Solo para ayudar a alguien como yo que reciba un error:
arithmetic expression: expecting primary: "-"
Revise su shellscript que comenzará con:
#!/bin/bash
¡Aclamaciones!
Usa el comando de time
. time ls /bin
.
Usar el comando de tiempo, como otros han sugerido, es una buena idea.
Otra opción es usar la variable incorporada mágica $ SEGUNDOS, que contiene la cantidad de segundos desde que la secuencia de comandos comenzó a ejecutarse. Puedes decir:
START_TIME=$SECONDS
dosomething
ELAPSED_TIME=$(($SECONDS - $START_TIME))
Creo que esto es específico de bash, pero como estás en Linux, asumo que estás usando bash.