Il comando sleep di Linux è uno dei comandi più semplici in circolazione. Come puoi intuire dal nome, la sua unica funzione è dormire. In altre parole, introduce un ritardo per un tempo specificato.
Quindi, se usi il comando sleep con x e il comando successivo può essere eseguito solo dopo x secondi.
Il comando Sleep ha una sintassi semplice:
sleep Number[Suffix]
Qui il suffisso potrebbe essere:
- s per secondi. Questa è l'impostazione predefinita.
- M per minuti.
- h per ore.
- d per giorni.
Vediamo alcuni esempi del comando sleep.
Esempi di comando di sospensione Bash
Sebbene tu possa usarlo direttamente in una shell, il comando sleep è comunemente usato per introdurre un ritardo nell'esecuzione di uno script bash. Mostrerò l'uso del comando sleep attraverso script bash di esempio.
Il comando di sospensione senza suffisso conta in secondi
Supponiamo di voler mettere in pausa il tuo script bash per 5 secondi, puoi usare la modalità di sospensione in questo modo:
sleep 5
In uno script bash di esempio, potrebbe apparire così:
!/bin/bash
echo "Sleeping for 5 seconds…"
sleep 5
echo "Completed"
Se lo esegui con il comando time, vedrai che lo script bash è stato effettivamente eseguito per (poco) più di 5 secondi.
time ./sleep.sh
Sleeping for 5 seconds…
Completed
real 0m5.008s
user 0m0.000s
sys 0m0.007s
Comando sleep con suffisso minuto o ora o giorno
Puoi specificare il tempo di sonno in minuti nel modo seguente:
sleep 1m
Questo metterà in pausa lo script/la shell per un minuto. Se vuoi ritardare lo script in ore, puoi farlo con l'opzione h:
sleep 2h
Anche se vuoi mettere in pausa lo script bash per giorni, puoi farlo con il suffisso d:
sleep 5d
Questo potrebbe essere d'aiuto se vuoi correre a giorni alterni o giorni della settimana.
Comando sleep con una combinazione di secondi, minuti, ora e giorno
Non sei obbligato a utilizzare un solo suffisso alla volta. Puoi utilizzare più di un suffisso e la durata del sonno è la somma di tutti i suffissi.
Ad esempio, se utilizzi il seguente comando:
sleep 1h 10m 5s
Ciò manterrà lo script in attesa per 1 ora, 10 minuti e 5 secondi. Nota che il suffisso s è ancora facoltativo qui.
Suggerimento bonus:dormi meno di un secondo
Potresti aver notato che l'unità di tempo più piccola nel comando sleep è la seconda. Ma cosa succede se il tuo script bash va in pausa per millisecondi?
La cosa buona è che puoi usare la virgola mobile (punti decimali) con il comando sleep.
Quindi, se vuoi introdurre una pausa di 5 millisecondi, usala in questo modo:
sleep 0.005
Puoi anche utilizzare i punti decimali con altri suffissi.
sleep 1.5h 7.5m
Introdurrà un ritardo di 1 ora, 37 minuti e 30 secondi.
Spero che tu non abbia dormito durante la lettura di questi esempi di comando del sonno 😉
Se sei interessato allo scripting della shell, forse ti piacerebbe leggere anche sul confronto delle stringhe in bash. Se hai domande o suggerimenti, non esitare a chiedere.