GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisation de la commande Linux Sleep dans les scripts Bash

La commande Linux sleep est l'une des commandes les plus simples. Comme vous pouvez le deviner d'après son nom, sa seule fonction est de dormir. En d'autres termes, il introduit un délai pendant un temps spécifié.

Donc, si vous utilisez la commande sleep avec x et que la commande suivante ne peut être exécutée qu'après x secondes.

La commande Sleep a une syntaxe simple :

sleep Number[Suffix]

Ici, le suffixe pourrait être :

  • s pour secondes. C'est la valeur par défaut.
  • m pour minutes.
  • h pendant des heures.
  • j pendant des jours.

Voyons quelques exemples de la commande sleep.

Exemples de commandes de veille bash

Bien que vous puissiez l'utiliser directement dans un shell, la commande sleep est couramment utilisée pour introduire un retard dans l'exécution d'un script bash. Je vais montrer l'utilisation de la commande sleep à travers des exemples de scripts bash.

La commande Sleep sans suffixe compte en secondes

Supposons que vous vouliez mettre en pause votre script bash pendant 5 secondes, vous pouvez utiliser sleep comme ceci :

sleep 5

Dans un exemple de script bash, cela pourrait ressembler à ceci :

!/bin/bash
echo "Sleeping for 5 seconds…"
sleep 5
echo "Completed"

Si vous l'exécutez avec la commande time, vous verrez que le script bash s'est en fait exécuté pendant (un peu) plus de 5 secondes.

time ./sleep.sh 
Sleeping for 5 seconds…
Completed

real    0m5.008s
user    0m0.000s
sys    0m0.007s

Commande Sleep avec suffixe minute ou heure ou jour

Vous pouvez spécifier le temps de veille en minutes de la manière suivante :

sleep 1m

Cela mettra le script/shell en pause pendant une minute. Si vous souhaitez retarder le script en heures, vous pouvez le faire avec l'option h :

sleep 2h

Même si vous souhaitez suspendre le script bash pendant des jours, vous pouvez le faire avec le suffixe d :

sleep 5d

Cela peut être utile si vous souhaitez courir un jour ou un jour sur deux.

Commande de veille avec une combinaison de seconde, minute, heure et jour

Vous n'êtes pas obligé d'utiliser un seul suffixe à la fois. Vous pouvez utiliser plus d'un suffixe et la durée du sommeil est la somme de tous les suffixes.

Par exemple, si vous utilisez la commande suivante :

sleep 1h 10m 5s

Cela maintiendra le script en attente pendant 1 heure, 10 minutes et 5 secondes. Notez que le suffixe s est toujours facultatif ici.

Astuce bonus :dormez moins d'une seconde

Vous avez peut-être remarqué que la plus petite unité de temps dans la commande sleep est la seconde. Mais que se passe-t-il si votre script bash se met en veille pendant quelques millisecondes ?

La bonne chose est que vous pouvez utiliser la virgule flottante (points décimaux) avec la commande sleep.

Donc, si vous voulez introduire une pause de 5 millisecondes, utilisez-la comme ceci :

sleep 0.005

Vous pouvez également utiliser des points décimaux avec d'autres suffixes.

sleep 1.5h 7.5m

Il introduira un délai de 1 heure, 37 minutes et 30 secondes.

J'espère que vous n'avez pas dormi en lisant ces exemples de commande sleep 😉

Si vous êtes intéressé par les scripts shell, vous aimeriez peut-être également en savoir plus sur la comparaison de chaînes dans bash. Si vous avez des questions ou des suggestions, n'hésitez pas à demander.


Linux
  1. Comment effacer l'historique de Bash sous Linux

  2. La commande de mise en veille à l'aide de la commande d'écran ne s'affiche pas dans Ps ?

  3. Utilisation de la commande Linux Basename dans les scripts Bash

  4. Utilisation de la commande ripgrep (rg) sous Linux

  5. Déplacer un dossier sous Linux à l'aide de la commande mv

Comment utiliser la commande echo dans les scripts Bash sous Linux

Tutoriel sur l'utilisation de la commande Timeout sous Linux

Planifier des travaux sous Linux avec la commande 'at'

Utilisation de la commande Watch sous Linux

Utilisation de la commande Linux Dirname dans les scripts Bash

Utilisation de cut sur Linux Terminal