Commande Bash Wait sous Linux

Bash Wait Command Linux



L'attente est une commande Linux qui renvoie un état de sortie après avoir attendu un processus en cours d'exécution complet. Lorsque plusieurs processus s'exécutent simultanément, la commande wait ne peut garder une trace que du dernier. Si la commande wait n'est pas associée à un ID de tâche ou de processus, elle attendra la fin de tous les processus enfants avant de renvoyer un état de sortie. La commande bash wait est souvent utilisée avec la commande ID de processus ou ID de tâche.

Dans ce didacticiel, nous allons explorer la commande Bash Wait sous Linux.







Syntaxe:

La syntaxe générale de la commande Wait sous Linux est :



attendre [option] ID

L'ID serait un ID de processus ou un ID de tâche.



Explication de la commande Bash Wait sous Linux :

Tout d'abord, créez un fichier à l'aide de la commande touch :





$toucherBashWait.sh

Rendez ce fichier exécutable en utilisant la commande ci-dessous :



$chmod+x nom de fichier

Une fois les privilèges d'exécutable accordés au fichier, ouvrez le fichier et écrivez un script dans le fichier bash :

#!/bin/bash

dormir 3 &

ID de processus=$!

chassèrent 'PID :$processID'

attendre $processID

chassèrent 'État de sortie : $ ?'

$! est une variable dans BASH qui stocke le PID du processus le plus récent.

Maintenant, exécutez le script comme suit :

$./nom de fichier

$./BashWait.sh

L'ID de processus et l'état Exist apparaîtront dans le shell.

Utilisation de l'option –n :

Avec l'option –n, la commande wait n'attend qu'un seul travail de l'ID de processus fourni ou des spécifications de travail avant de renvoyer son état de sortie. Wait -n attend la fin d'un travail en arrière-plan et renvoie l'état de sortie du travail si aucun argument n'est fourni.

Écrivez les lignes ci-dessous dans votre script :

#!/bin/bash

dormir 30 &

dormir 8 &

dormir 7 &

attendre -n

chassèrent « Le premier travail est terminé. »

attendre

chassèrent « Tous les travaux sont terminés ».

Ensuite, exécutez à nouveau le script et lorsque le premier travail est terminé, il imprime le message sur le terminal et attend que tous les autres travaux soient terminés.

Utilisation de l'option -f :

L'option -f attend que chaque ID de processus ou tâche s'arrête avant de renvoyer le code de sortie. Le contrôle des tâches est disponible uniquement pour les invites réactives par défaut.

Ouvrez le terminal et exécutez la commande :

Attendez le processus 3944.

Ouvrez une autre fenêtre de terminal et exécutez la commande kill pour terminer le processus.

Le statut sera modifié. La commande Wait se termine et renvoie le code de sortie du processus.

Répétez les étapes ci-dessus avec la commande –f.

Script avec la commande Wait :

Nous utilisons les scripts ‘hello.sh’ et ‘bash.sh’ pour la démonstration. Le script 'hello.sh' imprime les nombres de 1 à 5, et le script 'bash.sh' appelle hello.sh et l'exécute en arrière-plan, ayant le PID de hello.sh et attendant qu'il se termine.

Créez deux scripts avec les noms hello et bash :

Ajoutez les lignes ci-dessous dans le fichier hello.sh :

#!/bin/bash

pourjedans 1 2 3 4 5 6 7 8 9 dix

faire

chassèrenthello.sh – Numéro de boucle$i.

terminé

Ajoutez les lignes ci-dessous dans le script bash :

#!/bin/bash

chassèrentA démarré bash.sh

chassèrentCommencé hello.sh

./bonjour.sh&

id_processus=$!

attendre $process_id

chassèrentBonjour.sh terminé

Sortir:

Conclusion:

Lorsqu'un utilisateur souhaite arrêter un processus, le système libère toutes les ressources conservées par le processus et attend qu'un autre démarre. Nous devrons informer le processus qu'il peut redémarrer l'exécution une fois les autres processus terminés. La commande wait dans bash attend la fin de l'exécution et renvoie l'état de sortie lorsque l'exécution du processus est terminée. Dans ce manuel, nous avons vu quelques exemples de la commande Bash wait sous Linux.