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 han terminado. Si el comando de espera detecta algún error, devuelve cualquier valor de 1 a 126. Si se desconoce el ID del último proceso, el comando de espera sale con el valor 127. En este tutorial se muestra cómo puede usar el comando de espera 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 la identificación del proceso del primer comando echo se almacena en la variable $ process_id. Cuando el comando de espera se ejecuta con $ process_id, el siguiente comando esperará para completar la tarea del primer comando de eco. El segundo comando de espera se usa con 'PS!'y esto indica el ID de proceso del último proceso en ejecución. 'PS?'se usa para leer el valor de estado del comando de espera.
#!/ bin / bashecho "prueba de espera comando1" &
process_id = $!
echo "prueba de espera comando2" &
espera $ process_id
echo Trabajo 1 salió con estado $?
espera $!
echo Job 2 salió con estado $?
Producción:
$ bash wait1.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 y
pid = $!
matar $ pid
espera $ pid
echo $ pid fue terminado.
Producción:
$ bash wait2.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 valor de argumento, el comando de espera termina con éxito y si pasa cualquier valor mayor que cero, termina sin éxito.
#!/ bin / bashcontrol de funcionamiento()
echo "Duerme por $ 1 segundos"
dormir $ 1
salir $ 2
cheque $ 1 $ 2 y
b = $!
echo "Comprobando el estado"
espera $ b && echo OK || echo NO ESTÁ BIEN
Producción:
$ bash wait3.sh 3 0$ bash wait3.sh 3 5
Espero que este tutorial te ayude a aprender a usar el comando wait 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 el comando de suspensión, puede visitar este enlace.