Comment mettre en pause un script BASH à l’aide de la commande Linux Sleep
ce qu’il faut savoir
- utiliser sommeil commande plus temps ; s=Seconde, Mètre=minute, H=Heureou ré=ciel (Par exemple, dormir 5s Mettez le script en pause pendant 5 secondes).
- utiliser homme qui dort Suite.
Cet article explique comment utiliser la commande Linux sleep pour suspendre les scripts bash et plus encore. En soi, la commande sleep n’est pas très utile. Cependant, il peut être utilisé de plusieurs façons dans le cadre d’un script. Par exemple, vous pouvez l’utiliser pour suspendre le script avant de réessayer la commande qui a échoué la première fois.
Kelly McKean/ledigitalpost
Exemple utilisant la commande sleep
Imaginez que vous ayez un script qui gère les fichiers téléchargés depuis un autre serveur. Le script ne doit pas démarrer le processus de copie tant que tous les fichiers n’ont pas été téléchargés. Le processus de téléchargement est effectué par un script séparé qui s’exécute devant vous.
Un script qui copie des fichiers peut contenir une boucle pour tester si tous les fichiers ont été téléchargés (il le fait en vérifiant si 50 fichiers sont trouvés avant de démarrer le processus de copie).
Les tests scriptés n’ont pas de sens car ils prennent du temps processeur. Au lieu de cela, vous pouvez faire une pause de quelques minutes entre chaque test et réessayer. La commande sleep est parfaite dans ce cas.
Comment utiliser la commande sleep
Pour utiliser la commande Linux sleep, saisissez ce qui suit dans une fenêtre de terminal :
dormir 5s
class= »syntaxe-ql »>
La commande ci-dessus met le terminal en pause pendant 5 secondes, puis revient à la ligne de commande.
la commande sleep nécessite un mot-clé sommeil, Suivi du nombre et de l’unité de mesure à mettre en pause.
Vous pouvez spécifier le délai en secondes, minutes, heures ou jours.
- s: Seconde
- Mètre: minutes
- H: Heure
- ré: ciel
Si vous souhaitez suspendre le script pendant quelques jours, utilisez une tâche cron pour exécuter le script périodiquement au lieu de laisser le script s’exécuter en arrière-plan pendant quelques jours.
Une tâche cron est une commande ou un script Linux que vous pouvez programmer pour s’exécuter à une heure ou à une date définie. Ceux-ci sont utiles pour les longues tâches répétitives.
Le nombre d’intervalles de commande de mise en veille ne doit pas nécessairement être un nombre entier. Vous pouvez également utiliser des nombres à virgule flottante.
Par exemple, la syntaxe suivante inclut des fractions de seconde :
dormir 3.5s
class= »syntaxe-ql »>
Exemple utilisant la commande sleep
Le script suivant montre comment utiliser la commande sleep pour créer un compte à rebours basé sur un terminal :
#!/bin/bash
x=10
même si [ $x -gt 0 ]
Fais
dormir 1s
dégager
echo « $x secondes jusqu’au déclenchement »
x=$(($x – 1))
Achevée
class= »syntaxe-ql »>
Voici comment ce script fonctionne :
- Le script définit la variable x sur 10.
- Lorsque la valeur de x est supérieure à zéro, la boucle while continue à itérer.
- La commande sleep met le script en pause pendant 1 seconde à chaque boucle.
- Le reste du script efface l’écran à chaque itération, affiche le message « x secondes avant le lancement » et soustrait 1 à la valeur de x.
Sans la commande sleep, le script ferait un zoom avant et le message apparaîtrait trop rapidement.
Comment utiliser le commutateur de commande de veille
La commande sleep n’a que quelques commutateurs.
Ce – aider switch Affiche le fichier d’aide de la commande sleep. Vous pouvez obtenir la même chose en utilisant la commande man comme suit :
personne dort datatype= »code »>
Ce – Version Le commutateur affiche la version de la commande sleep installée sur le système.
Les informations renvoyées par le commutateur –version sont les suivantes :
- numéro de version
- Détails du droit d’auteur
- Licence
- auteur
Suspendre la commande du terminal avec sleep
Une autre utilisation intéressante de la commande sleep consiste à mettre en pause les commandes que vous tapez dans une fenêtre de terminal.
Si vous le souhaitez, vous pouvez taper deux commandes successivement, en attendant que la première commande se termine avant de taper la seconde.
Cependant, un moyen plus rapide consiste à taper deux commandes sur une même ligne, en ajoutant une commande sleep entre chacune :
$ cd /monrépertoire/ && sleep 3 && ls data-type= »code »>
Comment fonctionne cette commande :
- Ce cd /mon-répertoire/ commande pour changer de répertoire.
- Ce dormir 3 command Attend trois secondes que la commande cd se termine.
- Ce ls La commande s’exécute et affiche le contenu du répertoire.
Pour des exemples simples comme celui-ci, la commande sleep ne fait gagner que peu de temps. Cependant, si vous avez une longue liste de commandes, la possibilité de taper des commandes sur une seule ligne peut vous faire gagner du temps.
Merci de nous en informer!
Dites-nous pourquoi !
D’autres détails ne sont pas assez difficiles à comprendre