En este tutorial, exploraremos el comando Bash Wait en Linux.
Sintaxis:
La sintaxis general del comando Wait en Linux es:
esperar ID de [opción]
El ID sería un ID de proceso o un ID de trabajo.
Explicando el comando Bash Wait en Linux:
Primero, cree un archivo usando el comando táctil:
Haga que este archivo sea ejecutable usando el siguiente comando:
Una vez que se otorgan los privilegios ejecutables al archivo, abra el archivo y escriba un script en el archivo bash:
sleep 3 &
processID=$!
echo “PID: $processID“
wait $processID
echo “Exit status: $?”
PS es una variable en BASH que almacena el PID del proceso más reciente.
Ahora, ejecute el script de la siguiente manera:
$ ./BashWait.sh
Process ID y Exist status aparecerán en el shell.
Usando la opción –n:
Con la opción –n, el comando de espera solo espera a que finalice un único trabajo del ID de proceso o las especificaciones del trabajo proporcionados antes de devolver su estado de salida. Wait -n espera a que finalice cualquier trabajo en segundo plano y devuelve el estado de salida del trabajo si no se proporcionan argumentos.
Escriba las líneas que se dan a continuación en su guión:
sleep 30 &
sleep 8 &
sleep 7 &
wait -n
echo “First job has been completed.”
wait
echo “All jobs have been completed.”
A continuación, ejecute el script nuevamente y cuando se complete el primer trabajo, imprimirá el mensaje en el terminal y esperará a que se completen todos los demás trabajos.
Usando la opción –f:
La opción -f espera a que se detenga cada ID de proceso o trabajo antes de devolver el código de salida. El control de trabajos está disponible solo para mensajes de respuesta de forma predeterminada.
Abra el terminal y ejecute el comando:
Espere el proceso 3944.
Abra una ventana de terminal diferente y ejecute el comando kill para terminar el proceso.
El estado cambiará. El comando Wait se completará y devolverá el código de salida del proceso.
Repita los pasos anteriores con el comando –f.
Script con comando Wait:
Estamos usando los scripts ‘hello.sh’ y ‘bash.sh’ para la demostración. El script ‘hello.sh’ imprime números del 1 al 5, y el script ‘bash.sh’ llama a hello.sh y lo ejecuta en segundo plano, con el PID de hello.sh y esperando a que termine.
Cree dos scripts con el nombre hello y bash:
Agregue las líneas dadas a continuación en el archivo hello.sh:
for i in 1 2 3 4 5 6 7 8 9 10
do
echo “hello.sh – Loop number $i.”
done
Agregue las líneas dadas a continuación en el script bash:
echo “Started bash.sh”
echo “Started hello.sh”
./hello.sh &
process_id=$!
wait $process_id
echo “Completed hello.sh
Producción:
Conclusión:
Cuando un usuario desea detener un proceso, el sistema libera todos los recursos que mantiene el proceso y espera a que se inicie otro. Tendremos que notificar al proceso que puede reiniciar la ejecución una vez que se completen los otros procesos. El comando de espera en bash espera para completar la ejecución y devuelve el estado de salida cuando se completa la ejecución del proceso. En este manual, hemos visto algunos ejemplos del comando Bash wait en Linux.