
La commande de suspension fait que votre ordinateur Linux ne fait rien. C'est peut-être contre-intuitif, mais de temps en temps ce qu'il faut, c'est une période d'inactivité. Cet article vous montre comment utiliser efficacement cette commande shell bash.
À l'aide de sleep
c'est facile. Dans le type de ligne de commande sleep
, un espace, un numéro, puis appuyez sur Entrée.
dormir 5
Le curseur disparaîtra pendant cinq secondes puis reviendra. Qu'est-ce qui s'est passé? À l'aide de sleep
sur la ligne de commande, vous dites à Bash de suspendre le traitement pendant le temps que vous avez fourni. Dans notre exemple, c'était cinq secondes.
Nous pouvons déplacer les durées vers sleep
en jours, heures et minutes, ainsi qu'en quelques secondes. Pour faire ceci, inclure un suffixe de d, h, m,
O s
avec la durée. Pour arrêter le rêve d'un jour, quatre heures, sept minutes et cinq secondes, utiliser une commande comme celle-ci:
dormir 1j 4h 7m 5s
Les s
suffixe (pendant des secondes) c'est facultatif. Pas de suffixe sleep
traitera n'importe quelle durée comme des secondes. Supposons que vous vouliez avoir sleep
pause de cinq minutes et vingt secondes. Un format correct pour cette commande est:
dormir 5m 20
Si vous oubliez de fournir le m
suffixe en extension minute, instruira sleep
faire une pause pendant cinq secondes, puis à nouveau pendant vingt secondes. Ensuite sleep
s'arrêtera pour 25 secondes.
De nombreuses commandes vous obligent à fournir des paramètres dans un ordre spécifique, mais sleep
est très indulgent. Vous pouvez les fournir dans n'importe quel ordre et sleep
leur donnera un sens. De plus, vous pouvez fournir un nombre à virgule flottante en tant que paramètre. Par exemple, 0,5 h est un moyen valide d'indiquer que vous voulez sleep
faire une pause d'une demi-heure.
Toutes les commandes suivantes (de plus en plus excentrique) ils disent sleep
faire une pause de 10 secondes.
dormir 10
dormir 5 5s
Dormir 1 1 1s 1 1 1s 1 2
dormir 0.16667m
Utiliser le mode veille pour faire une pause avant une commande
Les sleep
la commande peut être utilisée pour faire une pause avant qu’une commande ne soit exécutée. cette commande s’arrêterait pendant 15 secondes, puis il émettrait un bip sonore.
dormir 15 && echo -en '07'
Utilisation du sommeil pour faire une pause entre deux commandes
Vous pouvez utiliser sleep
pour faire une pause entre deux commandes. Cette commande répertorierait les fichiers de votre répertoire Documents, il ferait une pause pendant cinq secondes, puis changerait le répertoire de travail actuel en votre répertoire personnel:
ls -R ~/Documents && dormir 5 && disque ~
Utiliser sleep pour suspendre l'exécution du script
Vous pouvez utiliser le sleep
commande dans les scripts shell pour suspendre l'exécution du script pendant une période précise. Régulièrement, Je ferais cela pour permettre à une procédure d'avoir suffisamment de temps pour se terminer avant que le script ne poursuive son traitement. Vous pouvez également l'utiliser pour limiter les requêtes qu'un script fait à une autre ressource.
Pour démontrer exactement que, voici un script qui appelle un service web google en utilisant curl
. Lorsque vous interrogez le service Web avec le ISBN numéro d'un livre, répond avec un vidage de données JSON concernant ce livre. Nous pouvons analyser ces données en les passant par le jq
utilitaire pour récupérer le titre du livre. Pour que le script ne stresse pas le service web, dort une seconde entre les requêtes Web.
créer un fichier contenant le texte suivant et l’enregistrer sous check_book.sh
.
#!/bin/bash for book in `cat $1` do echo $book":" curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$livre | jq '.items | .[] | .volumeInfo.title' echo "" dormir 1 done echo "Tout est fait."
Tapez la commande suivante pour déterminer les autorisations d'exécution et rendre le script exécutable.
chmod +x check_book.sh
Le script a besoin du curl
et jq
utilitaires. Utilisation apt-get
pour installer ces packages sur votre système si vous utilisez Ubuntu ou une autre distribution basée sur Debian. Sur d'autres distributions Linux, utilisez l'outil de gestion de paquets de votre distribution Linux.
sudo apt-get install curl
sudo apt-get install jq
Créez un fichier texte contenant les numéros suivants et enregistrez-le sous books.txt
.
9781565921276 9781874416685 9781565921672 9780521431088 9781491941591
Exécutez le check_book.sh
script et passez le books.txt
fichier en paramètre.
./check_book.sh livres.txt
Les requêtes sont adressées au service Web de Google à des intervalles d'une seconde. Le titre du livre apparaîtra peu de temps après avoir consulté chaque numéro ISBN.
C'est tout ce qu'il y a à sleep
. Le fonctionnement interne du check_book.sh
le script dépasse le cadre de cet article. Le script a été choisi uniquement pour illustrer une utilisation valide de la sleep
commander. Si vous souhaitez en savoir plus sur les deux composants principaux du script, voir le curl
page du projet et le jq
Manuel en ligne.