La commande `sleep` sur Linux interrompt temporairement l’activité de votre ordinateur. Bien que cela puisse sembler contre-intuitif, cette pause peut s’avérer très utile. Cet article explore comment utiliser efficacement cette instruction dans le shell Bash.
L’utilisation de `sleep` est simple. Dans le terminal, tapez `sleep`, suivi d’un espace, d’un nombre, puis appuyez sur Entrée.
sleep 5
Le curseur disparaîtra pendant cinq secondes, puis réapparaîtra. Que s’est-il passé ? L’instruction `sleep` indique à Bash de suspendre le traitement pendant la durée spécifiée. Dans cet exemple, cinq secondes.
Il est possible de définir des durées de pause en jours, heures et minutes, en plus des secondes. Pour cela, ajoutez le suffixe `d` pour les jours, `h` pour les heures, `m` pour les minutes et `s` pour les secondes. Pour une pause d’un jour, quatre heures, sept minutes et cinq secondes, la commande suivante est appropriée :
sleep 1d 4h 7m 5s
Le suffixe `s` (pour les secondes) est facultatif. Sans suffixe, `sleep` considérera la durée comme étant en secondes. Par exemple, pour une pause de cinq minutes et vingt secondes, une syntaxe correcte serait :
sleep 5m 20
Si vous omettez le suffixe `m` pour les minutes, `sleep` fera une pause de cinq secondes, puis de vingt secondes. La pause totale sera donc de 25 secondes.
Bien que de nombreuses commandes exigent des paramètres dans un ordre précis, `sleep` est plus flexible. Vous pouvez les indiquer dans n’importe quel ordre et `sleep` les interprétera correctement. De plus, vous pouvez utiliser des nombres décimaux. Ainsi, `0.5h` est une façon valide de demander une pause d’une demi-heure.
Les commandes suivantes, bien qu’un peu excentriques, indiquent toutes à `sleep` de faire une pause de 10 secondes :
sleep 10
sleep 5 5s
sleep 1 1 1s 1 1 1s 1 2
sleep 0.16667m
Utiliser `sleep` pour retarder l’exécution d’une commande
La commande `sleep` peut être utilisée pour insérer un délai avant l’exécution d’une autre commande. Par exemple, la commande ci-dessous fera une pause de 15 secondes, puis émettra un bip sonore.
sleep 15 && echo -en '\a'