La commande sleep permet de suspendre l'exécution d'un processus pendant une durée donnée.
sleep DURÉE[UNITÉ_DE_TEMPS]... sleep OPTION
La durée de sleep peut être indiquée :
rien : par défaut, ce seront des secondes en nombre de secondes : s en nombre de minutes : m en nombre d'heures : h en nombre de jours : d
voir le :
man sleep
Par exemple, et très simplement, nous allons écrire ceci dans un terminal :
while true; do echo Prout; done
Validez pour lancer la commande et Ctrl+C pour l'arrêter.
Maintenant, tapez ceci :
while true; do echo Prout; sleep 2; done
Ce moment gracieux vous a été offert par le captnfab en personne, dont je tiens à souligner toute la finesse, voire la délicatesse de l'éducation.
En fait, les rudes zécoles cévenoles d'où il vient forment ainsi la pensée de leurs zenfants :
La commande sleep peut remplacer un cron (voir crontab ) qui lancerait un script toutes les 2 minutes, par exemple :
while true; do ./monscript; sleep 2m; done
Avec un argument :
while true; do ./monscript argument; sleep 2m; done
Avec une interruption prévue mettons deux heures après le lancement du script :
for i in $(seq 60); do ./monscript arguments; sleep 2m; done
2 minutes x 60 ça fait bien 2 heures… Il tournera donc 2 heures (plus le temps d'exécution du script).
Tout ceci est du même captnfab à qui il sera beaucoup pardonné !