GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande Linux sleep avec des exemples

Présentation

Lorsque l'utilisateur émet une séquence de commandes multiples sous Linux, les commandes s'exécutent immédiatement l'une après l'autre ou simultanément (par exemple, la commande tee). Cependant, il est parfois nécessaire de différer l'exécution des commandes et de laisser suffisamment de temps au système pour produire les résultats attendus.

Dans ce didacticiel, vous apprendrez à utiliser la sleep de Linux commande pour retarder l'exécution de la commande dans les scripts du terminal et du shell.

Prérequis

  • Un système exécutant Linux
  • Accès à la ligne de commande

Que fait la commande Linux sleep ?

Le sleep La commande suspend le processus d'appel de la commande suivante pendant une durée spécifiée. Cette propriété est utile lorsque l'exécution de la commande suivante dépend de la réussite d'une commande précédente.

Explication de la syntaxe de la commande Linux sleep

La syntaxe du sleep la commande est simple :

sleep [number]

Dans l'exemple ci-dessus, après sleep 5 a été exécuté, la deuxième invite de commande est apparue avec un délai de 5 secondes.

Par défaut, le système lit le numéro après sleep comme le nombre de secondes. Pour spécifier d'autres unités de temps, utilisez la syntaxe suivante :

sleep [number][unit]

Le sleep La commande accepte les nombres à virgule flottante. Il permet plusieurs valeurs, qui sont toutes additionnées pour calculer la durée du sleep .

Les unités disponibles sont :

  • s – secondes
  • m – minutes
  • h – heures
  • d – jours

Pour arrêter le sleep après son démarrage et avant la fin de la période d'attente spécifiée, appuyez sur Ctrl + C .

Pour voir l'aide pour le sleep commande, tapez :

sleep --help 

Pour les détails de la version, tapez :

sleep --version

Exemples de commandes de mise en veille Linux

Les sections suivantes contiennent des exemples d'utilisation de sleep commande dans le terminal ou les scripts shell.

Configurer une alarme

Utiliser sleep pour dire au système de lire un fichier mp3 après un certain temps. L'exemple utilise mplayer :

sleep 7h 30m && mplayer alarm.mp3

Retarder les commandes dans le terminal

sleep est utile pour imposer un délai entre l'exécution de deux commandes. L'exemple suivant fait echo les commandes s'exécutent à intervalles d'une seconde :

sleep 1 && echo "one" && sleep 1 && echo "two"

Attribuer une variable à la commande sleep

Il est possible d'affecter une variable au sleep commande. Considérez le script shell suivant :

#!/bin/bash
SLEEP_INTERVAL="30"
CURRENT_TIME=$(date +"%T")
echo "Time before sleep: ${CURRENT_TIME}"
echo "Sleeping for ${SLEEP_INTERVAL} seconds"
sleep ${SLEEP_INTERVAL}
CURRENT_TIME=$(date +"%T")
echo "Time after sleep: ${CURRENT_TIME}"

Le script définit une variable appelée SLEEP_INTERVAL dont la valeur est ensuite utilisée comme argument du sleep commande. La sortie de cet exemple de script montre que l'exécution a duré 30 secondes :

Définir les intervalles de vérification

L'exemple suivant illustre l'utilisation du sleep commande dans un script qui vérifie si un site Web est en ligne. Le script s'arrête s'il réussit à envoyer un ping à un site Web et sleep introduit un délai de 10 secondes entre les pings infructueux.

#!/bin/bash
while :
    do
        if ping -c 1 www.google.com &> /dev/null
        then
        echo "Google is online"
        break
        fi
    sleep 10
done

Laisser du temps pour l'achèvement de l'opération

Vous exécutez peut-être un script bash qui appelle en interne deux autres scripts bash - un qui exécute des tests en arrière-plan et un autre qui imprime les résultats. Utiliser sleep pour empêcher le deuxième script d'afficher les mauvais résultats s'il s'exécute avant la fin du premier script :

while kill -0 $BACK_PID ; do
    echo "Waiting for the process to end"
    sleep 1
done

Le kill -0 $BACK_PID La commande vérifie si le processus du premier script est toujours en cours d'exécution. Si c'est le cas, il imprime le message et se met en veille pendant 1 seconde avant de vérifier à nouveau.

Prédire la latence

Utiliser sleep pour permettre la latence de certaines exécutions de commandes. L'extrait de script ci-dessous montre comment sleep donne au CPU suffisamment de temps pour effectuer le calcul avant la prochaine itération.

for (( i = 1 ; i <= 250 ; i++ )); 
    do  
    sleep 1
    qsub computation"${i}".pbs
done

Linux
  1. Comment utiliser la commande Linux Touch + Exemples

  2. Comment utiliser la commande Linux Hexdump avec des exemples pratiques

  3. Commande SCP sous Linux :comment l'utiliser, avec des exemples

  4. Comment utiliser la commande Rmmod sous Linux avec des exemples

  5. Comment utiliser la commande id sous Linux :5 exemples utiles

Comment utiliser la commande who sous Linux avec des exemples

Commande d'alias Linux :comment l'utiliser avec des exemples

Comment utiliser la commande RPM (avec exemples)

Comment utiliser la commande Linux gunzip avec des exemples

Comment utiliser la commande Linux rm avec des exemples

Comment utiliser la commande Sleep sous Linux :expliqué avec des exemples