tutorial traduccion meaning comandos bourne again bash

traduccion - Bash Script Llama a otro script de bash y espera a que se complete antes de continuar



bash tutorial (4)

Como uso un esquema como este en algunos scripts, solo llamo segundos scripts en el mismo shell-copy usando source .

En script-1 :

source script2.sh

o:

. script2.sh

Por lo tanto, ningún comando en script-1 no se script2.sh hasta que script2.sh finalice todas sus tareas.

Pequeño ejemplo

Primer guión:

$ cat script-1.sh #!/bin/bash echo "I''m sccript $0." echo "Runnig script-2..." source script-2.sh echo "script-2.sh finished!"

Segundo guión:

$ cat script-2.sh #bin/bash echo "I''m script-2. Running wait operation..." sleep 2 echo "I''m ended my task."

Cómo funciona:

$ ./script-1.sh I''m sccript ./script-1.sh. Runnig script-2... I''m script-2. Running wait operation... I''m ended my task. script-2.sh finished!

Tengo 1 script de bash que ejecuta otro script de bash, sin embargo, el primer bashscript no está esperando a que se complete el segundo antes de continuar, ¿cómo puedo forzarlo a esperar?

Por ejemplo:

#!/bin/bash # first.sh #call to secondary script sh second.sh echo "second.sh has completed" echo "continuing with the rest of first.sh..."

Tal como está ahora, ejecutará second.sh y continuará sin esperar a que second.sh se complete.


Normalmente lo hace; algo más está sucediendo. ¿Estás seguro de que el otro script no está ejecutando algo en segundo plano? Puedes intentar usar la wait independientemente.


Simplemente puede agregar el comando de wait después de ejecutar la segunda secuencia de comandos, esperará todo el proceso que inicie desde su secuencia de comandos principal

Incluso puede recuperar el PID de su segundo script con el comando echo $! directamente después de llamar al segundo script, y luego pasar este PID como un argumento al comando de wait


intente usar bash second.sh y revise su second.sh y asegúrese de no tener programas que se ejecuten en segundo plano