Comment utiliser la commande sleep sous Linux : syntaxe et exemples
Jul 29, 2026
/
Faradilla A.
/
7 minutes de lecture
La commande sleep sous Linux suspend l’exécution d’un script ou d’une commande pendant une durée déterminée. Elle permet d’éviter que votre système n’exécute un processus trop tôt ou trop fréquemment, tout en préservant l’automatisation.
Si vous utilisez des scripts Bash pour automatiser des tâches complexes sur votre système Linux, la commande sleep peut s’avérer très utile pour garantir le bon déroulement de vos processus.
Dans cet article, nous allons expliquer le rôle de la commande sleep sous Linux ainsi que sa syntaxe. Nous présenterons également des exemples concrets d’utilisation afin de vous aider à comprendre son fonctionnement.
À quoi sert la commande sleep sous Linux ?
La commande sleep sous Linux permet de suspendre l’exécution d’une commande ou d’un script pendant une durée déterminée. Elle s’avère utile pour plusieurs tâches, telles que :
- Retarder l’exécution – exécute des commandes ou des scripts Bash une fois le délai spécifié écoulé. Cela permet de s’assurer que les conditions nécessaires à l’exécution d’un processus sont réunies avant son lancement.
- Réduire la fréquence d’exécution – ajoute un délai afin d’exécuter les commandes ou les scripts moins fréquemment. Cela permet de réduire la charge du système ou du service cible, qui pourrait sinon entraîner des problèmes de performances.
- Relancer un processus – met en place un mécanisme de nouvelle tentative qui relance automatiquement un script ou une commande après un certain temps, au lieu d’interrompre immédiatement le processus.
En général, la commande sleep sous Linux est utilisée dans un script afin d’insérer un délai entre deux lignes. Cependant, comme nous le verrons plus loin, vous pouvez l’utiliser directement dans l’interface en ligne de commande de votre système.
Syntaxe et options de la commande sleep sous Linux
La syntaxe de la commande sleep sous Linux est la suivante :
sleep number[suffix] [options]
Le paramètre number indique la durée. Il peut s’agir d’un nombre entier ou d’un nombre décimal, par exemple 1.5. Vous pouvez utiliser n’importe quel nombre, à condition qu’il soit supérieur à 0.
Le paramètre [suffix] correspond à l’unité de temps, représentée par sa première lettre. La commande sleep prend en charge les unités suivantes :
- s – secondes
- m – minutes
- h – heures
- d – jours
- inf – l’infini
Le suffixe est facultatif. Si vous ne le précisez pas, la commande sleep utilisera les secondes par défaut.
La commande sleep sous Linux ne prend en charge que ces deux options :
- –help – affiche l’aide de la commande sleep dans le terminal de votre système.
- –version – affiche le numéro de version de la commande sleep, ce qui permet de vérifier si la commande est installée et à jour.

Exemples d’utilisation de la commande sleep sous Linux
Voyons comment utiliser la commande sleep sous Linux. Si vous souhaitez suivre ces exemples, ouvrez le terminal de votre système ou le terminal de votre navigateur si vous utilisez un serveur privé virtuel (VPS) Hostinger.

Utiliser les suffixes avec la commande sleep
Les suffixes de la commande sleep s’ajoutent directement à la fin des valeurs numériques. Par exemple, cette commande définira un délai de deux heures et 30 minutes :
sleep 2h 30m
Au lieu d’utiliser une unité de temps plus grande, vous pouvez également indiquer une valeur supérieure à 60 ou à 24. Par exemple, vous pouvez utiliser ce qui suit pour définir un délai d’un jour :
sleep 24h
Si vous omettez le suffixe, la commande définira automatiquement un délai exprimé en secondes. Par exemple, la commande suivante déclenchera une pause de 5 secondes :
sleep 5
Définir des fractions de seconde avec la commande sleep
Au lieu d’exprimer les fractions de temps à l’aide d’unités plus petites, utilisez des nombres décimaux. Par exemple, utilisez cette commande pour définir un délai de 2 heures et 30 minutes.
sleep 2.5h
Cela s’avère particulièrement utile si vous souhaitez définir un délai de moins d’une seconde. Par exemple, la commande suivante retardera l’exécution de la commande de 1,5 seconde :
sleep 1.5
Utiliser la commande sleep dans des scripts Bash
La commande sleep est généralement utilisée pour retarder l’exécution dans les scripts shell. Par exemple, créons un script simple qui affiche les messages « Hello » et « World » après une brève pause. Voici comment procéder :
- Créez le script Bash à l’aide de cette commande :
sudo nano hello.sh
- Ajoutez le shebang à la première ligne pour indiquer que votre fichier est un script Bash :
#!/bin/bash
- Ajoutez les commandes echo pour afficher le message comme suit :
echo "Hello" echo "World"
- Ajoutez la commande sleep entre les deux lignes pour définir un délai, comme ceci :
echo "Hello" sleep 5 echo "World"
- Appuyez sur Ctrl + X, puis sur Y et Entrée pour enregistrer le script.
- Rendez le script exécutable en modifiant les droits d’accès au fichier :
chmod +x hello.sh
- Exécutez le script comme suit :
./hello.sh

Bien qu’il s’agisse d’un exemple simple d’utilisation de la commande sleep dans un script Bash, le principe de fonctionnement de cette commande reste le même, quelle que soit la complexité de votre script.
Attribuer une variable à la durée du délai
Lorsque vous travaillez avec un script Bash, vous pouvez utiliser une variable pour définir dynamiquement la durée utilisée par la commande sleep. Cela s’avère particulièrement utile si votre script contient plusieurs commandes sleep et que vous modifiez souvent leur durée.
Par exemple, ce script contient deux commandes sleep avec des valeurs explicites que vous devez modifier une par une pour ajuster la durée du délai.
echo "Hello" sleep 5m echo "World" sleep 5m echo "Linux is fun"
Si vous utilisez une variable, le script devient le suivant. Dans cet exemple, les commandes sleep utilisent la variable $delay, définie sur 5m :
#Définissez la valeur ici delay="5m" echo "Hello" sleep "$delay" echo "World" sleep "$delay" echo "Linux is fun"
Nommage des variables
Vous pouvez donner n'importe quel nom à votre variable, à condition qu'il commence par le symbole $.
Vous pouvez utiliser plusieurs variables et valeurs comme suit :
#Définissez les valeurs ici delay1="5m" delay2="3m" echo "Hello" sleep "$delay1" echo "World" sleep "$delay2" echo "Linux is fun"
Au lieu d’écrire les valeurs des variables directement dans le script, vous pouvez également les transmettre depuis le shell principal au moment de son exécution. Cette méthode attribue automatiquement les valeurs aux variables $number selon leur ordre. Prenons l’exemple suivant :
./script.sh 60 20
Dans la commande ci-dessus, nous transmettons deux valeurs au script : 60 et 20. Par défaut, 60 devient la valeur de $1, tandis que 20 devient celle de $2.
Si vous ne souhaitez pas utiliser $1 ou $2 directement dans votre script, vous pouvez les réaffecter à d’autres variables. Voici un exemple :
#Définissez les valeurs ici delay1="$1" delay2="$2" echo "Hello" sleep "$delay1" echo "World" sleep "$delay2" echo "Linux is fun"
Cela signifie que $delay1 sera 60, tandis que $delay2 sera 20.

Configurer une alarme avec la commande sleep
Aussi surprenant que cela puisse paraître, la commande sleep peut servir à configurer une alerte programmée pour vous réveiller. Pour ce faire, créez un script qui envoie une notification et émet un son après un intervalle donné, à la manière d’un réveil.
Pour cela, vous devez utiliser un environnement de bureau Linux afin d’afficher la notification et de lire le signal sonore. Votre script d’alarme pourrait ressembler à ceci :
#!/bin/bash #Définit le délai avant l’exécution des commandes suivantes sleep "$1" #Envoie une notification notify-send "Alarme !" #Lit le son d’alerte. Remplacez par le chemin d’accès réel. paplay /chemin/vers/audio.wav
Dans ce script, nous utilisons la commande sleep avec la variable $1 afin de définir facilement le délai lors de l’exécution. Par exemple, utilisez cette commande pour régler l’alarme afin qu’elle se déclenche dans cinq minutes :
./alarm.sh 600
Retarder l’exécution de commandes depuis le terminal
Les commandes enchaînées sont une série de commandes exécutées successivement au cours d’une même exécution. Elles fonctionnent comme les lignes d’un script Bash, à la différence qu’elles s’exécutent directement depuis la ligne de commande.
L’enchaînement de commandes repose sur des opérateurs qui définissent les conditions de leur exécution. Par exemple, le double esperluette (&&) n’exécute la deuxième commande que si la première s’est terminée avec succès.
Voici un exemple de commandes enchaînées qui affiche Hello, puis immédiatement World :
echo "Hello" && echo "World"
Tout comme dans un script Bash, vous pouvez également utiliser la commande sleep pour retarder l’exécution de commandes enchaînées. Il suffit d’insérer la commande sleep entre les commandes à l’aide d’un opérateur.
Par exemple, si vous souhaitez que la commande ci-dessus affiche World 30 secondes après Hello, insérez la commande sleep comme suit :
echo "Hello" && sleep 30 && echo "World"
Interrompre la commande sleep
Pour interrompre la commande sleep, il suffit d’arrêter le processus en appuyant sur Ctrl + C. Cela mettra fin au délai et à l’exécution de la commande ou du script.
Par exemple, vous pouvez exécuter une commande avec un délai de 3 minutes comme suit :
sleep 3m && echo "Hello world"
Si vous appuyez sur Ctrl + C, l’exécution s’arrête et aucune sortie ne s’affiche, même au bout de trois minutes. Si vous relancez la commande ci-dessus, vous devrez patienter trois minutes complètes avant d’obtenir le résultat.
Définir les intervalles de vérification avec la commande sleep
Si vous utilisez des scripts en boucle pour effectuer des vérifications ou assurer une surveillance régulière de votre système, vous pouvez utiliser la commande sleep sous Linux pour définir l’intervalle de la boucle. Bien qu’il soit également possible d’utiliser une tâche cron pour planifier un processus, la commande sleep est plus adaptée aux tâches exécutées plus fréquemment.
Voici, par exemple, un script simple qui vérifie l’état d’un service et affiche un message si le service est actif.
#!/bin/bash
while true; do
if systemctl is-active --quiet apache2; then
echo "Apache is running."
else
echo "Apache is not running."
fi
sleep 15 # Attendre 15 secondes avant de vérifier à nouveau
doneVoyons comment fonctionne ce script :
- L’instruction while true exécute le script en boucle jusqu’à ce que vous l’arrêtiez explicitement, créant ainsi un processus continu.
- La commande systemctl vérifie si le service Apache est en cours d’exécution.
- L’instruction conditionnelle if-else affiche un résultat différent selon l’état du service.
- La commande sleep définit l’intervalle en ajoutant un délai de 15 secondes avant que le script ne s’exécute de nouveau.
Conclusion
La commande sleep suspend l’exécution d’une commande ou d’un script pendant une durée déterminée. Elle est utile pour réduire la fréquence d’exécution, ajouter un délai à un processus ou mettre en place un mécanisme de nouvelle tentative.
Pour utiliser la commande sleep sous Linux, il suffit d’indiquer une valeur et une unité de temps, par exemple : sleep 2h 30m. Vous pouvez utiliser n’importe quel nombre supérieur à zéro, y compris un nombre décimal, pour définir une durée fractionnaire.
En général, la commande sleep est utilisée dans un script Bash pour insérer un délai entre deux lignes. Cependant, vous pouvez également l’exécuter directement dans le shell de votre système pour retarder l’exécution de commandes enchaînées.
Dans un cas d’utilisation concret, vous pouvez utiliser la commande sleep pour mettre en place un système de notification qui se déclenche après un délai donné. Vous pouvez également l’utiliser dans un script en boucle afin d’ajouter un délai à des processus répétitifs, comme la surveillance.
Tout le contenu des tutoriels de ce site est soumis aux normes éditoriales et aux valeurs rigoureuses de Hostinger.
Commentaires
0 responses