Comment suspendre un script bash avec la commande de veille Linux



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'