C√≥mo usar el comando ¬ęsleep¬Ľ de Linux para pausar un script de BASH


Esta guía muestra cómo usar el comando sleep de Linux para pausar un script de bash.

Por s√≠ solo, el comando sleep es completamente in√ļtil a menos que le guste cerrar la ventana de su terminal, pero como parte de un script, puede ser usado de muchas maneras diferentes, incluyendo como factor de pausa antes de volver a intentar un comando.

Por ejemplo, imagina que tienes un script que procesa archivos copiados de otro servidor. El script no debería iniciar el proceso de copia hasta que todos los archivos hayan terminado de descargarse. El proceso de descarga se realiza mediante un script completamente separado.

El script para copiar los archivos bien puede contener un bucle para comprobar si todos los archivos han sido descargados (es decir, sabe que debería haber 50 archivos y cuando se han encontrado 50 archivos, se inicia el proceso de copia).

No tiene sentido que el script se pruebe continuamente, ya que ocupa tiempo del procesador. En su lugar, puede elegir probar si hay suficientes archivos copiados y, si no los hay, hacer una pausa durante unos minutos e intentarlo de nuevo. El comando de sue√Īo es perfecto en estas circunstancias.

Cómo usar el comando sleep

Para usar el comando de suspensión de Linux, introduzca lo siguiente en la ventana del terminal:

sleep 5s

El comando anterior hará que su terminal se detenga durante 5 segundos antes de volver a la línea de comandos.

El comando sleep requiere la palabra clave ‘sleep’ seguida del n√ļmero por el que desea hacer una pausa y luego la unidad de medida.

Puede especificar el retraso en segundos, minutos, horas o días.

  • s – segundos
  • m – minutos
  • h – horas
  • d – d√≠as

Cuando se trata de esperar días para que algo suceda, podría valer la pena considerar el uso de un trabajo cron para ejecutar el script a intervalos regulares, en lugar de tener un script ejecutándose en segundo plano durante días y días.

El n√ļmero del comando sleep no tiene que ser un n√ļmero entero. Tambi√©n puede utilizar n√ļmeros de coma flotante.

Por ejemplo, est√° perfectamente bien usar la siguiente sintaxis:

sleep 3.5s>.

Un ejemplo de uso para el comando sleep

El siguiente script muestra cómo usar el comando sleep para hacer un reloj de cuenta regresiva basado en la terminal:

#!/bin/bash
x=10
mientras que [ $x -gt 0 ]
do
dormir 1s
claro
>echo "$x segundos hasta el despegue"
x=$( $x - 1))
hecho

>

El script establece la variable x en 10. El bucle while continuar√° iterando mientras el valor de x sea mayor que cero.

El comando sleep hace una pausa en el script durante 1 segundo cada vez que circula por el bucle.

El resto del script borra la pantalla en cada iteraci√≥n, muestra el mensaje ¬ęx seconds until blast off¬Ľ (i.e. 10) y luego resta 1 del valor de x.

Sin el comando sleep, el script se acercaría y los mensajes se mostrarían demasiado rápido.

Interruptores

El comando dormir sólo tiene un par de interruptores.

El par√°metro –help muestra el archivo de ayuda del comando sleep. Puede lograr lo mismo usando el comando man de la siguiente manera:

man sleep

El comando –version muestra la versi√≥n del comando sleep que est√° instalado en su sistema.

La informaci√≥n devuelta por el interruptor –version es la siguiente:

  • N√ļmero de versi√≥n
  • Detalles del copyright
  • Licencia
  • Autores

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *