scripts script resueltos programacion pasar parametros manejo español ejercicios ejemplos comandos cadenas shell timing

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.