Cuando se necesita pausar o retrasar la ejecución de código (delay) dentro de un script Bash se suele utilizar la herramienta sleep, la cual por defecto toma un parámetro que representa la cantidad de segundos a "dormir" (pausar antes de retomar la ejecución). Sin embargo, en sistemas GNU/Linux, sleep permite utilizar otras unidades como minutos, horas, días, etc.

La implementación de GNU del comando sleep (man sleep) admite un sufijo en el parámetro que representa la unidad. Por defecto, el parámetro está expresado en segundos, pero si se agrega un sufijo se cambia la unidad:

  • s: segundos
  • m: minutos
  • h: horas
  • d: días

Dormir durante 1 segundo:

sleep 1
sleep 1s

Dormir durante 1 minuto:

sleep 1m

Dormir durante 1 hora:

sleep 1h

Dormir durante 1 día:

sleep 1d

Seguramente tenga muchas utilidades, pero si se requiere dormir un script por un día, tal vez sea mejor y más robusto utilizar cron.

Ejemplos:

root@linuxito:~# date; sleep 1; date
Fri Feb  3 06:07:23 EST 2017
Fri Feb  3 06:07:24 EST 2017
root@linuxito:~# date; sleep 1m; date
Fri Feb  3 06:07:28 EST 2017
Fri Feb  3 06:08:28 EST 2017
root@linuxito:~# date; sleep 1h; date
Fri Feb  3 06:08:36 EST 2017
Fri Feb  3 07:08:36 EST 2017
root@linuxito:~#

FreeBSD

La implementación de sleep provista por FreeBSD no soporta el uso de sufijos, por lo cual se deben utilizar siempre segundos.

Dormir durante 1 segundo:

sleep 1

Dormir durante 1 minuto:

sleep 60

Dormir durante 1 hora:

sleep 3600

Dormir durante 1 día:

sleep 86400


Tal vez pueda interesarte


Compartí este artículo