Comando de espera en Linux

Comando de espera en Linux
esperar es un comando incorporado de Linux que espera para completar cualquier proceso en ejecución. esperar El comando se usa con una identificación de proceso o ID de trabajo en particular. Cuando se ejecutan múltiples procesos en el shell, solo el ID de proceso del último comando será conocido por el shell actual. Si el comando de espera se ejecuta esta vez, entonces se aplicará para el último comando. Si no se da una identificación de proceso o ID de trabajo con el comando WAIT, entonces esperará a que todos los procesos infantiles actuales completen y devuelva el estado de salida.

El valor de estado de salida del comando de espera depende del comando indicado por el último operando especificado. Cuando cualquier proceso termine anormalmente, el estado de salida será mayor que 128 y será diferente de los valores de estado de salida de otros comandos. esperar El comando sale con el valor 0 cuando llama sin operandos y todas las identificaciones de proceso son conocidas por el shell actual han terminado. Si el comando Wait detecta algún error, entonces devuelve cualquier valor de 1 a 126. Si se desconoce la última ID de proceso, espera el comando de espera con el valor 127. Cómo puede usar el comando Wait en Linux se muestra en este tutorial.

Ejemplo-1: Uso del comando de espera para múltiples procesos

Después de ejecutar el siguiente script, dos procesos se ejecutarán en segundo plano y la ID de proceso del primer comando ECHO se almacena en $ Process_id Variable. Cuando el comando de espera se ejecuta con $ process_id, el siguiente comando esperará para completar la tarea del primer comando echo. El segundo comando de espera se usa con 'ps!'Y esto indica la identificación del proceso del último proceso de ejecución. 'ps?'se usa para leer el comando de valor de estado de espera.

#!/bin/bash
Echo "Prueba de espera comando1" y
process_id = $!
echo "Prueba de espera de comando2" y
esperar $ process_id
Echo Job 1 salió con el estado $?
esperar $!
Echo Job 2 salió con el estado $?

Producción:

$ bash espera1.mierda

Ejemplo-2: Pruebe el comando de espera después de usar el comando matar

En el siguiente script, el comando de espera se ejecuta después de finalizar el proceso. El comando del sueño se ejecuta como un proceso de fondo y el comando de matar se ejecuta para terminar el proceso de ejecución. Después de ese comando de espera se ejecuta con el ID de proceso del proceso terminado. La salida mostrará el ID de proceso del proceso terminado.

#!/bin/bash
echo "Prueba de comando de espera"
dormir 20 y
PID = $!
matar $ pid
esperar $ pid
Echo $ pid fue terminado.

Producción:

$ bash wait2.mierda

Ejemplo-3: verifique el valor de estado de salida

En el siguiente script, la función controlar() es llamado por dos valores de argumento. Se discute en el inicio del tutorial que si el comando de espera se ejecuta con éxito, el valor de salida será 0 y si el comando de espera detecta algún error, entonces devolverá cualquier valor entre 1 y 126. Después de ejecutar el script, si pasa 0 como segundo valor de argumento, entonces espera el comando termina con éxito y si pasa algún valor más de cero, entonces termina sin éxito.

#!/bin/bash
control de funcionamiento()

Echo "Sleep por $ 1 segundos"
dormir $ 1
Salir $ 2

Verifique $ 1 $ 2 y
b = $!
Echo "Verificar el estado"
esperar $ b && echo ok || Echo no está bien

Producción:

$ bash espera3.SH 3 0
$ bash espera3.sh 3 5

Espero que este tutorial ayude a aprender el comando de espera de uso correctamente. Hay otro comando en Linux, llamado dormir esperar la cierta cantidad de veces, pero hay algunas diferencias entre estos comandos. Si está interesado en conocer el comando de sueño, puede visitar este enlace.