Introduzione

Sleep è un'utilità della riga di comando che consente di sospendere il processo di chiamata per un periodo di tempo specificato. In altre parole, il comando sleep mette in pausa l'esecuzione sul comando successivo per un determinato numero di secondi.

Il comando sleep è particolarmente utile quando utilizzato all'interno di uno script della shell bash, ad esempio quando si tenta di ripetere un'operazione non riuscita o all'interno di un ciclo.

In questo tutorial, ti mostreremo come usare il comando sleep di Linux.

Come utilizzare il comando sleep

La sintassi per il comando sleep è la seguente:

sleep NUMBER [SUFFIX]...

NUMBER può essere un numero intero positivo o un numero a virgola mobile.

SUFFIX può essere uno dei seguenti:

  • s - secondi (impostazione predefinita)
  • m - minuti
  • h - ore
  • d - giorni

Quando non viene utilizzato nessun suffisso, il valore predefinito è secondi.

Quando vengono specificati due o più argomenti, la quantità totale di tempo è equivalente alla somma dei loro valori.

Ecco alcuni semplici esempi che dimostrano come utilizzare il comando sleep:

Sospendere per 5 secondi:

sleep 5

Sospendere per 0,5 secondi:

sleep 0.5

Sospendere per 2 minuti e 30 secondi:

sleep 2m 30s

Esempi di script Bash

Di seguito è riportato l'esempio più basilare di come utilizzare il comando sleep negli script Bash. Quando si esegue lo script, l'ora corrente verrà stampata nel formato HH:MM:SS. Quindi il comando sleep sospenderà lo script per 5 secondi. Allo scadere del periodo di tempo specificato, l'ultima riga dello script stampa nuovamente l'ora corrente.

#!/bin/bash

# start time
date +"%H:%M:%S"

# sleep for 5 seconds
sleep 5

# end time
date +"%H:%M:%S"

L'output sarà simile al seguente:

13:34:40
13:34:45

Diamo un'occhiata a un esempio più avanzato.

#!/bin/bash

while :
do
  if ping -c 1 ip_address &> /dev/null
  then
    echo "Host is online"
    break
  fi
  sleep 5
done

Lo script sopra verificherà se un host è online o meno ogni 5 secondi e quando l'host è online lo script ti avviserà e si fermerà.

Come funziona lo script:

  • Nella prima riga, stiamo creando un ciclo while infinito .
  • Quindi stiamo usando il comando ping per determinare se l'host con indirizzo IP ip_address  è raggiungibile o meno.
  • Se l'host è raggiungibile, lo script farà eco "Host is online" e terminerà il ciclo.
  • Se l'host non è raggiungibile, il comando sleep mette in pausa lo script per 5 secondi, quindi il ciclo inizia dall'inizio.

Conclusione

Ormai dovresti avere una buona conoscenza di come usare il comando sleep di Linux.

Il comando sleep è uno dei comandi shell più semplici, che accetta solo un argomento che viene utilizzato per specificare l'intervallo sleep.