Introduzione
Quando l'utente esegue una sequenza di comandi multipli in Linux, i comandi vengono eseguiti immediatamente uno dopo l'altro o contemporaneamente (ad esempio, il comando tee). Tuttavia, a volte è necessario posticipare l'esecuzione dei comandi e fornire tempo sufficiente affinché il sistema produca i risultati attesi.
 In questo tutorial imparerai come usare il sleep di Linux comando per ritardare l'esecuzione del comando nel terminale e negli script della shell. 
 Prerequisiti
- Un sistema che esegue Linux
 - Accesso alla riga di comando
 
Cosa fa il comando sleep di Linux?
 Il sleep  comando sospende il processo di chiamata del comando successivo per un periodo di tempo specificato. Questa proprietà è utile quando l'esecuzione del comando successivo dipende dal completamento con successo di un comando precedente.
Spiegazione della sintassi del comando sleep di Linux
 La sintassi del sleep  il comando è semplice:
sleep [number] 
 
 Nell'esempio sopra, dopo sleep 5  è stato eseguito, il secondo prompt dei comandi è apparso con un ritardo di 5 secondi.
 Per impostazione predefinita, il sistema legge il numero dopo sleep  come numero di secondi. Per specificare altre unità di tempo, utilizza la seguente sintassi:
sleep [number][unit] 
 
 Il sleep  il comando accetta numeri in virgola mobile. Consente più valori, che vengono tutti sommati per calcolare la durata del sleep  .
Le unità disponibili sono:
s– secondim– minutih– ored– giorni
 Per interrompere il sleep  dopo l'inizio e prima della fine del periodo di attesa specificato, premi Ctrl + C  .
 Per vedere l'aiuto per il sleep  comando, digita:
sleep --help  Per i dettagli sulla versione, digita:
sleep --version Esempi di comandi per la sospensione di Linux
 Le sezioni seguenti contengono esempi di utilizzo del sleep  comando nel terminale o negli script della shell.
Imposta una sveglia
 Usa sleep  per dire al sistema di riprodurre un file mp3 dopo un certo periodo di tempo. L'esempio utilizza mplayer:
sleep 7h 30m && mplayer alarm.mp3 Comandi di ritardo nel terminale
 sleep  è utile per far rispettare un tempo tra l'esecuzione di due comandi. L'esempio seguente crea echo  i comandi vengono eseguiti a intervalli di un secondo:
sleep 1 && echo "one" && sleep 1 && echo "two" 
 Assegna una variabile al comando sleep
 È possibile assegnare una variabile allo sleep  comando. Considera il seguente script di shell:
#!/bin/bash
SLEEP_INTERVAL="30"
CURRENT_TIME=$(date +"%T")
echo "Time before sleep: ${CURRENT_TIME}"
echo "Sleeping for ${SLEEP_INTERVAL} seconds"
sleep ${SLEEP_INTERVAL}
CURRENT_TIME=$(date +"%T")
echo "Time after sleep: ${CURRENT_TIME}" 
 Lo script definisce una variabile chiamata SLEEP_INTERVAL  il cui valore viene successivamente utilizzato come argomento per il sleep  comando. L'output di questo script di esempio mostra che l'esecuzione è durata 30 secondi:
 Definisci intervalli di controllo
 L'esempio seguente illustra l'uso di sleep  comando in uno script che controlla se un sito Web è online. Lo script si interrompe se esegue correttamente il ping di un sito Web e sleep  introduce un ritardo di 10 secondi tra i ping non riusciti.
#!/bin/bash
while :
    do
        if ping -c 1 www.google.com &> /dev/null
        then
        echo "Google is online"
        break
        fi
    sleep 10
done 
 Concedi tempo per il completamento dell'operazione
 Potresti eseguire uno script bash che chiama internamente altri due script bash:uno che esegue i test in background e un altro che stampa i risultati. Usa sleep  per evitare che il secondo script stampi risultati errati se viene eseguito prima del completamento del primo script:
while kill -0 $BACK_PID ; do
    echo "Waiting for the process to end"
    sleep 1
done 
 Il kill -0 $BACK_PID  comando controlla se il processo del primo script è ancora in esecuzione. Se lo è, stampa il messaggio e si ferma per 1 secondo prima di ricontrollare.
Prevedi la latenza
 Usa sleep  per consentire la latenza di alcune esecuzioni di comandi. Lo snippet di script di seguito mostra come sleep  dà alla CPU abbastanza tempo per eseguire il calcolo prima dell'iterazione successiva.
for (( i = 1 ; i <= 250 ; i++ )); 
    do  
    sleep 1
    qsub computation"${i}".pbs
done