El comando de suspensión de Linux es uno de los comandos más simples que existen. Como puedes adivinar por el nombre, su única función es dormir. En otras palabras, introduce un retraso por un tiempo específico.
Entonces, si usa el comando de suspensión con x y el siguiente comando solo se puede ejecutar después de x segundos.
El comando de suspensión tiene una sintaxis simple:
sleep Number[Suffix]
Aquí, el sufijo podría ser:
- s por segundos. Este es el valor predeterminado.
- m por minutos.
- h por horas.
- d durante días.
Veamos algunos ejemplos del comando de suspensión.
Ejemplos del comando Bash sleep
Aunque puede usarlo directamente en un shell, el comando de suspensión se usa comúnmente para introducir un retraso en la ejecución de un script bash. Voy a mostrar el uso del comando de suspensión a través de scripts bash de muestra.
Comando de suspensión sin sufijo cuenta en segundos
Supongamos que desea pausar su secuencia de comandos bash durante 5 segundos, puede usar el modo de suspensión de esta manera:
sleep 5
En un script bash de muestra, podría verse así:
!/bin/bash
echo "Sleeping for 5 seconds…"
sleep 5
echo "Completed"
Si lo ejecuta con el comando de tiempo, verá que el script bash realmente se ejecutó durante (un poco) más de 5 segundos.
time ./sleep.sh
Sleeping for 5 seconds…
Completed
real 0m5.008s
user 0m0.000s
sys 0m0.007s
Comando de suspensión con sufijo de minuto, hora o día
Puede especificar el tiempo de sueño en minutos de la siguiente manera:
sleep 1m
Esto pausará el script/shell por un minuto. Si desea retrasar el script en horas, puede hacerlo con la opción h:
sleep 2h
Incluso si desea pausar el script bash durante días, puede hacerlo con el sufijo d:
sleep 5d
Esto podría ayudar si desea ejecutar en días alternos o entre semana.
Comando de dormir con una combinación de segundo, minuto, hora y día
No está obligado a usar solo un sufijo a la vez. Puede usar más de un sufijo y la duración del sueño es la suma de todos los sufijos.
Por ejemplo, si usa el siguiente comando:
sleep 1h 10m 5s
Esto hará que el script espere 1 hora, 10 minutos y 5 segundos. Tenga en cuenta que el sufijo s sigue siendo opcional aquí.
Consejo adicional:duerme menos de un segundo
Es posible que haya notado que la unidad de tiempo más pequeña en el comando de suspensión es el segundo. Pero, ¿qué sucede si su script bash duerme durante milisegundos?
Lo bueno es que puedes usar punto flotante (puntos decimales) con el comando de suspensión.
Entonces, si desea introducir una pausa de 5 milisegundos, utilícela así:
sleep 0.005
También puede usar puntos decimales con otros sufijos.
sleep 1.5h 7.5m
Introducirá un retraso de 1 hora, 37 minutos y 30 segundos.
Espero que no te hayas dormido mientras leías estos ejemplos de comandos de suspensión 😉
Si está interesado en los scripts de shell, tal vez también le gustaría leer sobre la comparación de cadenas en bash. Si tiene preguntas o sugerencias, no dude en preguntar.