Como usar o comando "sleep" de Linux para pausar un script BASH

Esta guía amosa como usar o comando de suspensión de Linux para pausar un script bash.

Por si só, o comando de suspensión é completamente inútil a menos que desexe bloquear a xanela do terminal, pero como parte dun script pódese usar de moitas maneiras, incluído como un factor de pausa antes de volver iniciar un comando.

Por exemplo, imaxine que tiña un script que procesaba ficheiros copiados desde outro servidor. O script non debería iniciar o proceso de copia ata que termine de descargar todos os ficheiros.

O proceso de descarga realízase por un script completamente separado.

O script para copiar os ficheiros pode conter un ciclo para probar se se descargaron todos os ficheiros (isto é, sabe que debería haber 50 arquivos e cando se atoparon 50 arquivos, o proceso de copia comezou).

Non hai ningún punto que o script proba continuamente xa que ocupa o tempo do procesador. No seu canto, pode optar por probar se hai suficientes ficheiros copiados e se non hai pausa durante uns minutos e ténteo de novo. O comando de suspensión é perfecto nestas circunstancias.

Como usar o comando de suspensión

Para usar o comando de sono de Linux introduza o seguinte na xanela do terminal:

durmir 5s

O comando anterior fará que o seu terminal fose pausado durante 5 segundos antes de devolvelo á liña de comando.

O comando de suspensión require a palabra clave de sono seguido do número que desexe pausar e despois a unidade de medida.

Podes especificar o atraso en segundos, minutos, horas ou días.

Cando se trata de días de espera para que ocorra algo vale a pena considerar o uso dun traballo cron para executar o script a intervalos regulares, en oposición a ter unha secuencia de comandos en segundo plano durante días e finais.

O número para o comando de suspensión non ten que ser un número enteiro.

Tamén pode usar números de punto flotante.

Por exemplo, está perfectamente ben usar a seguinte sintaxe:

sleep 3.5s

Un exemplo de uso para o comando de suspensión

O seguinte script mostra como usar o comando sleep para facer un reloxo de conta atrás baseado en terminal:

#! / bin / bash

x = 10

mentres que [$ x -gt 0]

facer

durmir 1s

claro

eco "$ x segundos ata que se esgota"

x = $ (($ x - 1))

feito

O script establece a variable x a 10. O ciclo while continuará a iterar mentres que o valor de x é maior que cero.

O comando de suspensión detense o script por 1 segundo cada vez ao redor do ciclo.

O resto do script elimina a pantalla cada iteración, mostra a mensaxe "x segundos ata que se desprende" (é dicir, 10) e despois resta 1 do valor de x.

Sen o comando de suspensión, o script ampliaría e as mensaxes mostraranse demasiado rapidamente.

O comando de suspensión só ten un par de interruptores.

O botón --help mostra o ficheiro de axuda para o comando sleep. Pode conseguir o mesmo empregando o comando man do seguinte xeito:

home durmir

O comando --version mostra a versión do comando sleep que está instalado no seu sistema.

A información que envía o conmutador deversión é a seguinte: