Comment mettre en pause un script bash avec la commande Linux suspend

Contenu

Shell Bash dans le concept de bureau Unity

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.

Aucune sortie visible de la commande sleep 5

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 ~

Sortie de deux commandes distinctes par veille

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 Oui 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.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.