Ordre Bash Wait a Linux

Bash Wait Command Linux



L'espera és una ordre de Linux que retorna l'estat de sortida després d'esperar un procés complet en execució. Quan s’executen diversos processos simultàniament, l’ordre wait només pot fer un seguiment de l’últim. Si l'ordre d'espera no està associada amb un ID de procés o de treball, esperarà que es completin tots els processos secundaris abans de retornar l'estat de sortida. L'ordre bash wait s'utilitza sovint amb els comandaments ID de procés o Job ID.

En aquest tutorial, explorarem l'ordre Bash Wait a Linux.







Sintaxi:

La sintaxi general de l'ordre Espera a Linux és:



espera [opció] ID

L'identificador seria un identificador de procés o un identificador de treball.



Explicació de l'ordre Bash Wait a Linux:

En primer lloc, creeu un fitxer mitjançant l'ordre tàctil:





$tocarBashWait.sh

Feu aquest fitxer executable mitjançant l'ordre següent:



$chmod+ x nom del fitxer

Un cop atorgats els privilegis executables al fitxer, obriu-lo i escriviu un script al fitxer bash:

#! / bin / bash

dormir 3 &

ID de procés=$!

trobo 'PID:$ processID'

espera $ processID

trobo 'Estat de sortida: $?'

$! és una variable de BASH que emmagatzema el PID del procés més recent.

Ara, executeu l'script de la següent manera:

$./nom de l'arxiu

$./BashWait.sh

L’identificador de procés i l’estat d’existència apareixeran a l’intèrpret d’ordres.

Utilitzant l'opció –n:

Amb l'opció –n, l'ordre d'espera només espera que acabi un sol treball de l'identificador de procés proporcionat o de les especificacions del treball abans de retornar el seu estat de sortida. Espera -n espera que acabi qualsevol treball en segon pla i torna l'estat de sortida del treball si no es proporcionen arguments.

Escriviu les línies indicades a continuació al vostre script:

#! / bin / bash

dormir 30 &

dormir 8 &

dormir 7 &

espera -n

trobo 'El primer treball s'ha completat'.

espera

trobo 'S'han completat tots els treballs'.

A continuació, torneu a executar l'script i, quan es completi el primer treball, imprimirà el missatge al terminal i esperarà que es completin tots els altres treballs.

Utilitzant l'opció –f:

L'opció -f espera que cada identificador de procés o tasca s'aturi abans de tornar el codi de sortida. El control de feines només està disponible per defecte per a sol·licituds de resposta.

Obriu el terminal i executeu l'ordre:

Espereu el procés 3944.

Obriu una finestra de terminal diferent i executeu l'ordre kill per finalitzar el procés.

Es canviarà l'estat. L'ordre Espera completarà i retornarà el codi de sortida del procés.

Repetiu els passos indicats anteriorment amb l'ordre –f.

Script amb ordre d'espera:

Estem utilitzant scripts 'hello.sh' i 'bash.sh' per demostrar-los. L’escriptura ‘hello.sh’ imprimeix números de l’1 al 5 i l’escriptura ‘bash.sh’ crida hello.sh i l’executa en segon pla, tenint el PID d’hello.sh i esperant que acabi.

Creeu dos scripts amb el nom hello i bash:

Afegiu les línies següents al fitxer hello.sh:

#! / bin / bash

perjodins 1 2 3 4 5 6 7 8 9 10

fer

trobohello.sh: número de bucle$ i.

fet

Afegiu les línies següents a l’escriptura bash:

#! / bin / bash

troboS'ha iniciat bash.sh

troboVa començar hello.sh

./hello.sh&

id_procés=$!

espera $ process_id

troboHello.sh completat

Sortida:

Conclusió:

Quan un usuari vol aturar un procés, el sistema allibera tots els recursos conservats pel procés i espera que comenci un altre. Haurem de notificar al procés que es pot reiniciar l’execució un cop finalitzin els altres processos. L'ordre wait a bash espera per completar l'execució i retorna l'estat de sortida quan s'acaba l'execució del procés. En aquest manual, hem vist alguns exemples de l’ordre Bash wait a Linux.