Come mettere in pausa uno script Bash con il comando Sleep di Linux

Il comando sleep in Linux induce il tuo computer a non compiere alcuna azione per un intervallo di tempo specificato. Potrebbe sembrare controintuitivo, ma talvolta una pausa è esattamente ciò che serve. Questo articolo ti illustrerà come sfruttare al meglio questo comando nella shell Bash.

L’utilizzo di sleep è piuttosto semplice. Nella riga di comando, digita sleep, lascia uno spazio, inserisci un numero e premi Invio.

sleep 5

Il cursore scomparirà per cinque secondi per poi ricomparire. Cosa è successo? L’utilizzo di sleep sulla riga di comando comunica a Bash di sospendere l’esecuzione dei processi per la durata indicata. In questo caso, la pausa è stata di cinque secondi.

Possiamo indicare la durata della pausa non solo in secondi, ma anche in giorni, ore e minuti. Per farlo, dobbiamo aggiungere un suffisso di d, h, m o s dopo il valore numerico. Per esempio, per far sospendere il comando sleep per un giorno, quattro ore, sette minuti e cinque secondi, possiamo utilizzare il seguente comando:

sleep 1d 4h 7m 5s

Il suffisso s (per secondi) è opzionale. Se non viene specificato alcun suffisso, sleep considera automaticamente la durata espressa in secondi. Ipotizziamo di voler creare una pausa di cinque minuti e venti secondi. Un modo corretto per farlo è:

sleep 5m 20

Se dimenticassimo il suffisso m per i minuti, sleep interpreterebbe il comando come “fai una pausa di cinque secondi e poi un’altra di venti secondi”, per un totale di venticinque secondi di pausa.

Molti comandi richiedono che i parametri siano specificati in un ordine preciso, ma sleep è molto flessibile. È possibile inserire i parametri in qualsiasi ordine, e il comando sarà in grado di interpretarli correttamente. È possibile utilizzare anche numeri decimali come parametri. Ad esempio, 0.5 ore indica che la pausa dovrà durare mezz’ora.

Tutti i comandi seguenti, sebbene scritti in maniera diversa, istruiscono sleep a fare una pausa di 10 secondi.

sleep 10
sleep 5 5s
sleep 1 1 1s 1 1 1s 1 2
sleep 0.16667m

Utilizzo di sleep per creare pause prima dell’esecuzione di un comando

Il comando sleep può essere utilizzato per creare una pausa prima di eseguire un altro comando. Il comando seguente farà una pausa di 15 secondi e poi emetterà un segnale acustico.

sleep 15 && echo -en '\a'