Utilisation de la commande Sleep dans les scripts Bash sous Linux ⋆ ALexHost SRL

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
06.12.2024
No categories

Utilisation de la commande Sleep dans les scripts Bash sous Linux

Utilisation de la commande Sleep dans les scripts Bash sous Linux

Lorsque vous travaillez avec des scripts Bash sous Linux, il peut arriver que vous souhaitiez interrompre l’exécution d’un script pendant un certain temps. La commande sleep est un outil simple mais puissant à cet effet. Elle vous permet d’introduire des délais entre les commandes, ce qui la rend utile pour divers scénarios de script. Dans cet article, nous allons voir comment utiliser efficacement la commande sleep dans les scripts Bash.

Qu’est-ce que la commande sleep ?

La commande sleep de Linux suspend l’exécution d’un script pendant une durée déterminée. La durée peut être spécifiée en secondes, minutes, heures ou même jours. La syntaxe de base de la commande est la suivante

sleep [NUMBER][SUFFIX]
  • NUMÉRO: Représente la durée de la pause du script.
  • SUFFIXE: Facultatif, il spécifie l’unité de temps. Il peut s’agir de
    • s pour les secondes (par défaut)
    • m pour les minutes
    • h pour les heures
    • d pour les jours

Par exemple, pour mettre un script en pause pendant 10 secondes, vous devez utiliser :

sleep 10s

Utilisation de sleep dans les scripts Bash

La commande sleep est couramment utilisée dans les scripts où il est nécessaire d’introduire un délai entre deux commandes. Voici quelques exemples d’utilisation :

  1. Pause entre deux commandes: Supposons que vous souhaitiez créer un script qui affiche un message, attend quelques secondes, puis affiche un autre message. Voici comment procéder :
    #!/bin/bash
    echo "Démarrage du processus..."
    sleep
    echo "Le processus reprend après 5 secondes."

    Dans ce script, la commande sleep interrompt l’exécution pendant 5 secondes entre les deux commandes echo.

  2. Création d’une boucle avec des délais: La commande sleep peut être utilisée dans des boucles pour ajouter des délais entre les itérations. Cela peut s’avérer utile pour surveiller un processus ou exécuter des tâches répétitives avec un décalage entre elles :
    #!/bin/bash
    for i in {1..5}
    do
    echo "Itération $i"
    sleep 2
    done

    Ce script affiche “Itération” suivi du numéro de l’itération, puis attend 2 secondes avant de passer à l’itération suivante. Il répétera ce processus 5 fois.
  3. Programmation des tâches: Bien qu’il existe des moyens plus sophistiqués de programmer des tâches (comme cron), l’utilisation de sleep est un moyen rapide de retarder le démarrage d’un processus. Par exemple, vous pourriez vouloir qu’un script exécute une commande après un certain délai :

    #!/bin/bash
    echo "Le script sera exécuté dans 10 minutes."
    sleep 10m
    echo "Exécute la commande maintenant..."
    # Placez votre commande ici

    Dans cet exemple, le script attend 10 minutes avant d’exécuter la commande suivante

Utilisation de Sleep avec des nombres à virgule flottante

À partir des versions plus récentes de Sleep, vous pouvez utiliser des nombres à virgule flottante pour un contrôle plus précis du délai. Par exemple, si vous voulez faire une pause de 1,5 seconde, vous pouvez écrire :

sleep 1.5

Cette fonction est particulièrement utile dans les scripts où la précision du temps est cruciale, comme dans le cas d’animations ou de systèmes de surveillance.

Combiner sleep avec d’autres commandes

La commande sleep peut être combinée avec d’autres commandes Linux pour créer des scripts plus complexes. Par exemple, si vous souhaitez télécharger un fichier et réessayer toutes les 10 secondes jusqu’à ce que le téléchargement aboutisse, vous pouvez utiliser une boucle avec sleep :

#!/bin/bash
while true
do
wget http://example.com/file.zip && break
echo "Le téléchargement a échoué. Réessai dans 10 secondes..."
sleep 10
done

Dans ce script, si la commande wget échoue, elle attendra 10 secondes avant d’essayer de télécharger à nouveau le fichier. La commande break permet de sortir de la boucle une fois que le téléchargement a réussi.

Utilisation de sleep pour les tâches d’arrière-plan

Si vous souhaitez exécuter une commande après un certain délai sans bloquer le terminal, vous pouvez exécuter sleep en arrière-plan à l’aide de l’opérateur & :

sleep 10 && echo "10 seconds have passed !" &

Cette commande redonnera immédiatement le contrôle au terminal et affichera le message après 10 secondes.

Conclusion

La commande sleep est un outil simple mais polyvalent dans les scripts Bash. Elle vous permet de contrôler le flux de vos scripts en introduisant des délais entre les commandes, ce qui la rend idéale pour des tâches telles que l’automatisation de processus, la planification ou la création de boucles avec des pauses. Que vous soyez un débutant ou un utilisateur avancé, la maîtrise de l’utilisation de sleep peut vous aider à créer des scripts Bash plus efficaces et mieux contrôlés.

En comprenant les bases de sleep et en l’associant à d’autres commandes, vous pouvez réaliser des tâches d’automatisation plus sophistiquées, ce qui rendra votre expérience de l’écriture de scripts Linux plus fluide et plus efficace. Bonne lecture !

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills