Espere el comando en Linux

Wait Command Linux



Espere es un comando integrado de Linux que espera completar cualquier proceso en ejecución. Espere El comando se usa con un ID de proceso o de trabajo en particular. Cuando se ejecutan varios procesos en el shell, el shell actual solo conocerá el ID de proceso del último comando. Si esta vez se ejecuta el comando de espera, se aplicará al último comando. Si no se proporciona una identificación de proceso o una identificación de trabajo con el comando de espera, esperará a que se completen todos los procesos secundarios actuales y devolverá 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 finaliza de forma anormal, el estado de salida será superior a 128 y será diferente de los valores de estado de salida de otros comandos. Espere El comando sale con el valor 0 cuando llama sin operandos y todos los ID de proceso son conocidos por el shell actual y han terminado. Si el comando wait detecta algún error, devuelve cualquier valor entre 1 y 126. Si se desconoce el último ID de proceso, el comando wait sale con el valor 127. En este tutorial se muestra cómo puede usar el comando wait en Linux.







Ejemplo 1: uso del comando de espera para varios procesos

Después de ejecutar el siguiente script, dos procesos se ejecutarán en segundo plano y el ID de proceso del primer comando echo se almacena en la variable $ process_id. Cuando el comando wait 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 ' $! 'Y esto indica el ID de proceso del último proceso en ejecución. ' $? 'Se utiliza para leer el valor de estado del comando de espera.



#! / bin / bash
echo 'prueba de espera comando1' &
identificacion de proceso=$!
echo 'prueba de espera command2' &
Espere $ process_id
echoTrabajo1salido con estado$?
Espere $!
echoTrabajo2salido con estado$?

Producción:



$intentowait1.sh





Ejemplo-2: comando de espera de prueba después de usar el comando kill

En el siguiente script, el comando de espera se ejecuta después de terminar el proceso. El comando sleep se ejecuta como un proceso en segundo plano y el comando kill se ejecuta para finalizar el proceso en ejecución. Después de que se ejecute el comando de espera con el ID de proceso del proceso terminado. La salida mostrará la identificación del proceso del proceso terminado.

#! / bin / bash
echo 'Prueba de comando de espera'
dormir 20 &
pid=$!
matar $ pid
Espere $ pid
echo $ pidfue terminado.

Producción:



$intentowait2.sh

Ejemplo 3: comprobar el valor del estado de salida

En el siguiente script, la función cheque() es llamado por dos valores de argumento. Se comenta al comienzo 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, devolverá cualquier valor entre 1 y 126. Después de ejecutar el script, si pasa 0 como segundo argumento value luego el comando wait termina con éxito y si pasa cualquier valor mayor que cero, termina sin éxito.

#! / bin / bash
funcióncheque()
{
echo 'Duerme por $ 1 segundo'
dormir $1
Salida $2
}
cheque$1 $2 &
b=$!
echo 'Comprobando el estado'
Espere $b && echoOK|| echoNO ESTÁ BIEN

Producción:

$intentowait3.sh3 0
$intentowait3.sh3 5

Espero que este tutorial te ayude a aprender a utilizar el comando de espera correctamente. Hay otro comando en Linux, llamado dormir esperar cierta cantidad de veces, pero hay algunas diferencias entre estos comandos. Si está interesado en conocer comando dormir entonces puedes visitar este enlace.