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 / bashecho '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 / bashfunció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.