Attendre la commande sous Linux

Wait Command Linux



attendre est une commande intégrée de Linux qui attend la fin de tout processus en cours. attendre La commande est utilisée avec un identifiant de processus ou un identifiant de travail particulier. Lorsque plusieurs processus s'exécutent dans le shell, seul l'ID de processus de la dernière commande sera connu par le shell actuel. Si la commande wait est exécutée cette fois, elle sera appliquée pour la dernière commande. Si aucun ID de processus ou d'ID de travail n'est donné avec la commande wait, il attendra que tous les processus enfants actuels se terminent et renvoie l'état de sortie.

La valeur de l'état de sortie de la commande wait dépend de la commande indiquée par le dernier opérande spécifié. Lorsqu'un processus se termine anormalement, l'état de sortie sera supérieur à 128 et sera différent des valeurs d'état de sortie des autres commandes. attendre La commande se termine avec la valeur 0 lorsqu'elle appelle sans opérande et que tous les ID de processus sont connus par le shell actuel se sont terminés. Si la commande wait détecte une erreur, elle renvoie une valeur comprise entre 1 et 126. Si le dernier identifiant de processus est inconnu, la commande wait se termine avec la valeur 127. La façon dont vous pouvez utiliser la commande wait sous Linux est illustrée dans ce didacticiel.







Exemple-1 : Utilisation de la commande wait pour plusieurs processus

Après avoir exécuté le script suivant, deux processus s'exécuteront en arrière-plan et l'ID de processus de la première commande echo est stocké dans la variable $process_id. Lorsque la commande wait est exécutée avec $process_id, la commande suivante attendra la fin de la tâche de la première commande echo. La deuxième commande wait est utilisée avec ' $! ' et cela indique l'ID de processus du dernier processus en cours d'exécution. ' $? ' est utilisé pour lire la valeur d'état de la commande wait.



#!/bin/bash
chassèrent 'tester la commande d'attente1' &
id_processus=$!
chassèrent 'tester la commande d'attente2' &
attendre $process_id
chassèrentTravail1sorti avec le statut$?
attendre $!
chassèrentTravail2sorti avec le statut$?

Sortir:



$frapperattendre1.sh





Exemple 2 : tester la commande wait après avoir utilisé la commande kill

Dans le script suivant, la commande wait est exécutée après la fin du processus. La commande sleep s'exécute en tant que processus d'arrière-plan et la commande kill est exécutée pour mettre fin au processus en cours. Après cette commande wait est exécutée avec l'ID de processus du processus terminé. La sortie affichera l'ID de processus du processus terminé.

#!/bin/bash
chassèrent 'Test de la commande d'attente'
dormir vingt &
pid=$!
tuer $pid
attendre $pid
chassèrent $pida été résilié.

Sortir:



$frapperattendre2.sh

Exemple-3 : Vérifier la valeur de l'état de sortie

Dans le script suivant, la fonction Chèque() est appelé par deux valeurs d'argument. Il est expliqué au début du didacticiel que si la commande wait est exécutée avec succès, la valeur de sortie sera 0 et si la commande wait détecte une erreur, elle renverra n'importe quelle valeur comprise entre 1 et 126. Après avoir exécuté le script, si vous passez 0 comme deuxième argument value then wait La commande se termine avec succès et si vous passez une valeur supérieure à zéro, elle se termine sans succès.

#!/bin/bash
fonctionChèque()
{
chassèrent « Dormir pendant 1 $ seconde »
dormir 1 $
sortir 2 $
}
Chèque1 $ 2 $ &
b=$!
chassèrent « Vérification de l'état »
attendre $ b && chassèrentd'accord|| chassèrentPAS D'ACCORD

Sortir:

$frapperattendre3.sh3 0
$frapperattendre3.sh3 5

J'espère que ce tutoriel vous aidera à apprendre correctement la commande use wait. Il existe une autre commande sous Linux, nommée dormir d'attendre un certain nombre de fois, mais il existe des différences entre ces commandes. Si vous êtes intéressé à savoir commande de sommeil alors vous pouvez visiter ce lien.