====== sleep ======
* Objet : Commande linux sleep
* Niveau requis :{{tag>débutant avisé}}
* Commentaires : //Dormir (ou ne rien faire) pendant un laps de temps par la ligne de commande.//
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) - ainsi que : [[:doc:systeme:su | La commande SU]]
* Suivi : {{tag>à-tester}}
* Création par [[user>smolski]] le 04/10/2010
* Testé par .... le ....
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=3025 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== Intro =====
La commande sleep permet de suspendre l'exécution d'un processus pendant une durée donnée.
Cette commande sert à ceux qui écrivent ou modifient des scripts. \\
À part cette utilisation, sleep n'a que peu d'intérêt.
===== Synopsis =====
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
===== Utilisation =====
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 C-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// :
* au fond d'un pré,
* dans une maigre cabane appelée //tinette//,
* perchés ou accroupis au-dessus d'un trou béant,
* sur deux planches en bois...
* à réfléchir au monde qui vient !
:-D
===== Exemples d'utilisations =====
La commande **sleep** peut remplacer un cron (voir [[:doc:systeme: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é !// :-D