Imprimir tiempo de ejecución de Shell Script en Linux
Este rápido tutorial le enseña cómo mostrar el tiempo de ejecución de un script de shell en Linux.
¿Alguna vez te has preguntado cuánto tiempo lleva ejecutar un determinado script de shell? Probablemente ya haya encontrado ciertos scripts de shell que imprimen el tiempo necesario para ejecutar el script.
Esta información es útil durante algún tiempo para el análisis, especialmente si los scripts tardan algún tiempo en completarse.
Como administrador de sistemas, si crea un script, puede mostrar el tiempo de ejecución al final como información adicional para el usuario final. Esta es una de las varias formas en que puede hacer que sus scripts de shell sean más interactivos y detallados.
Impresión del tiempo de ejecución del script de shell
El shell Bash y algunos otros shells proporcionan una variable incorporada llamada SECONDS para este propósito. Esta variable mantiene la cantidad de segundos desde que se abrió un shell y, en el caso de un script, serán los segundos desde que se ejecutó el script.
Puede utilizar el comando echo en Linux para mostrar el valor de esta variable SEGUNDOS.
Déjame mostrarte un script de muestra muy simple:
#!/bin/bash
sleep 5
sleep 7
echo "This script took $SECONDS seconds to execute"
Estoy usando el comando bash sleep en el script anterior que no hace más que esperar el tiempo especificado.
¿Cuál crees que debería ser el resultado del script anterior?
This script took 12 seconds to execute
Vea lo fácil que fue mostrar el tiempo de ejecución del script.
También puede utilizar el comando time para obtener el tiempo de ejecución del script.
time ./script.sh
El resultado de lo anterior será un poco diferente de lo que vio antes. Mostrará el tiempo de ejecución en detalle aquí. Puedes ver que el tiempo de ejecución es de 12.010 segundos, no de 12 segundos.
real 0m12.010s
user 0m0.004s
sys 0m0.006s
Espero que les haya gustado este pequeño consejo rápido de Linux sobre cómo mostrar el tiempo de ejecución de un script de shell bash. ¿Lo usarías en tus guiones? ¿Qué posible escenario tienes en mente para usarlo?