Com utilitzar el comandament "sleep" de Linux per pausar un script BASH

Aquesta guia mostra com utilitzar la comanda de suspensió de Linux per pausar un script bash.

Per si mateix, el comandament del son és completament inútil, tret que vulgueu tancar la vostra finestra de terminal, però com a part d'un script, es pot utilitzar de moltes maneres diferents, com ara un factor de pausa abans de tornar a intentar un comandament.

Per exemple, imagineu que tenia un script que processava fitxers copiats d'un altre servidor. El script no hauria d'iniciar el procés de còpia fins que acabin de descarregar-se tots els fitxers.

El procés de descàrrega es realitza mitjançant un script completament separat.

L'script per copiar els fitxers pot contenir un bucle per comprovar si s'han baixat tots els fitxers (és a dir, sap que hauria de tenir 50 fitxers i quan es van trobar 50 fitxers, s'inicia el procés de còpia).

No hi ha cap sentit que la seqüència de comandaments es controli continuadament, ja que pren el temps del processador. En el seu lloc, podeu triar provar si hi ha prou fitxers copiats i si no hi ha pausa durant uns minuts i torneu-ho a provar. El comandament del son és perfecte en aquestes circumstàncies.

Com utilitzar el comandament del son

Per utilitzar la comanda de so de Linux introduïu el següent a la finestra del terminal:

dormir 5s

L'ordre anterior farà que el vostre terminal es detingui durant 5 segons abans de tornar-vos a la línia d'ordres.

L'ordre del son requereix la paraula clau de son seguit del nombre que voleu pausar per i després la unitat de mesura.

Podeu especificar el retard en segons, minuts, hores o dies.

Pel que fa als dies d'espera per a que passi alguna cosa, val la pena considerar l'ús d'un treball cron per executar l'script a intervals regulars, en comptes de tenir un script que s'executi en segon pla durant dies i dies.

El número de la comanda del so no ha de ser un número sencer.

També podeu utilitzar els números de coma flotants.

Per exemple, està perfectament possible utilitzar la sintaxi següent:

sleep 3.5s

S'utilitza un exemple per al comandament del so

El següent script mostra com utilitzar l'ordre sleep per fer un rellotge de compte enrere basat en terminal:

#! / bin / bash

x = 10

mentre que [$ x-gt 0]

fer

dormir 1s

clar

ressò "$ x segons fins a l'explosió"

x = $ (($ x - 1))

fet

L'script estableix la variable x a 10. El bucle while continuarà fent iteració mentre que el valor de x és major que zero.

La comanda del son pausa el script durant 1 segon cada vegada al voltant del bucle.

La resta de l'script elimina la pantalla de cada iteració, mostra el missatge "x segons fins a l'explosió" (és a dir, 10) i després resta 1 del valor de x.

Sense el comandament del so, el script es reduiria i els missatges es mostrarien massa ràpidament.

El comandament del son només té un parell d'interruptors.

L'opció --help mostra el fitxer d'ajuda per a l'ordre sleep. Podeu fer el mateix mitjançant l'ús de l'ordre man de la següent manera:

home dormir

La comanda --version mostra la versió de la comanda de so instal·lada al vostre sistema.

La informació retornada per l'opció --version switch és la següent: