En los shells de Unix , es un comando que pausa hasta que finaliza
la ejecución de un proceso en segundo plano .wait
Uso
esperar [ n ]
donde n es el pid o el identificador de trabajo de un proceso en segundo plano (trabajo) que se está ejecutando actualmente. Si no se proporciona n , el comando espera hasta que todos los trabajos conocidos por el shell que lo invoca hayan finalizado.
wait normalmente devuelve el estado de salida del último trabajo que finalizó. También puede devolver 127 en caso de que n especifique un trabajo inexistente o cero si no había trabajos por los que esperar.
Debido a que waites necesario conocer la tabla de trabajos del entorno de ejecución del shell actual, generalmente se implementa como un archivo incorporado del shell .
Ejemplo
Este comando puede ser útil cuando parte de un script se puede ejecutar en paralelo para implementar una barrera donde una sección próxima depende de la finalización exitosa de las secciones anteriores.
El siguiente ejemplo obtendrá el directorio src/ de una máquina llamada iona usando rsync y actualizará simultáneamente las bibliotecas de las que depende este programa, antes de construir la combinación.
#!/usr/bin/env bash
# Script de actualización paralela que utiliza el comando de espera
# Actualizar la copia local
rsync iona:src/ . & # Actualizar las bibliotecas requeridas o salir indicando falla si make falló por alguna razón
make -C lib || exit 1
# Espere a que rsync finalice (puede que ya haya sucedido) y finalice el trabajo
.
hacer
Espere el número de identificación de control de trabajo especificado:
$ ls -R / > /dev/null 2 > & 1 & # inicia cualquier proceso en segundo plano de larga ejecución [ 2 ] 1986
$ wait %2 # espera a que finalice el trabajo en segundo plano número 2 y luego regresa
Véase también
Enlaces externos
- Manual de referencia de GNU bash para el comando wait