Commande Bash Wait dans Linux

Commande Bash Wait dans Linux
L'attente est une commande Linux qui renvoie un statut de sortie après avoir attendu un processus d'exécution complet. Lorsque plusieurs processus s'exécutent simultanément, la commande d'attente ne peut suivre que la dernière. Si la commande d'attente n'est pas associée à un travail ou un identifiant de processus, il attendra que tous les processus enfants se terminent avant de retourner un statut de sortie. La commande Bash Wait est souvent utilisée avec les ID de processus ou les ID de travail.

Dans ce tutoriel, nous explorerons la commande Bash Wait dans Linux.

Syntaxe:

La syntaxe générale de la commande d'attente dans Linux est:

Attendez l'ID [option]

ID serait un identifiant de processus ou un identifiant de travail.

Expliquer la commande Bash Wait dans Linux:

Créez d'abord un fichier en utilisant la commande tactile:

$ touch bashwait.shot

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

$ chmod + x nom de fichier

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

#!/ bac / bash
sommeil 3 &
processId = $!
écho "pid: $ processId"
Attendez $ processId
Echo "Statut de sortie: $?"

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

Maintenant, exécutez le script comme suit:

$ ./nom de fichier
$ ./ Bashwait.shot

L'ID de processus et le statut existant apparaîtra dans le shell.

Utilisation d'option -n:

Avec l'option -N, la commande d'attente n'attend qu'un seul travail à partir de l'ID de processus fourni ou des spécifications de travail pour terminer avant de retourner son statut de sortie. Attendez -n attendre tout travail d'arrière-plan pour terminer et renvoie le statut de sortie du travail si aucun argument n'est fourni.

Écrivez les lignes fournies ci-dessous dans votre script:

#!/ bac / bash
sommeil 30 &
dormir 8 &
Sleep 7 &
attendre -n
Echo "Le premier travail a été terminé."
attendez
écho "Tous les emplois ont été terminés."

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

Utilisation d'option -f:

L'option -F attend que chaque identifiant de processus ou travail s'arrête avant de retourner le code de sortie. Le contrôle du travail est disponible uniquement pour les invites réactives par défaut.

Open Terminal and Run Command:

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 d'attente se terminera et renvoie le code de sortie du processus.

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

Script avec commande d'attente:

Nous utilisons 'bonjour.sh 'et' bash.Scripts pour la démonstration. Le 'bonjour.Sh 'Script imprime les numéros de 1 à 5 et «bash.sh 'script appelle bonjour.sh et l'exécute en arrière-plan, ayant le pid de bonjour.sh et attend qu'il se termine.

Créez deux scripts avec le nom Hello and Bash:

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

#!/ bac / bash
pour i en 1 2 3 4 5 6 7 8 9 10
faire
Echo «Bonjour.Sh - Numéro de boucle $ i."
fait

Ajoutez les lignes ci-dessous dans le script bash:

#!/ bac / bash
Echo «a commencé à bash.sh ”
Echo «a commencé bonjour.sh ”
./Bonjour.sh &
process_id = $!
attendre $ process_id
Echo «terminé bonjour.shot

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 commence. Nous devons informer le processus qu'il peut redémarrer l'exécution une fois les autres processus terminés. La commande d'attente dans BASH attend pour terminer 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 dans Linux.