Вызовы Сценария Bash другой сценарий удара и ожидают его для завершения перед продолжением

У меня есть 1 сценарий удара, который выполняет другой сценарий удара, однако первый bashscript не ожидает второго для завершения перед продолжением, как я могу вынудить это ожидать?

Например:

#!/bin/bash
# first.sh

#call to secondary script
sh second.sh
echo "second.sh has completed"

echo "continuing with the rest of first.sh..."

Путем это теперь, это выполнит second.sh и продвинется, не ожидая second.sh для завершения.

25
задан BassKozz 16 February 2010 в 01:24
поделиться

3 ответа

Обычно это так; происходит что-то еще. Вы уверены, что другой сценарий не запускает что-то в фоновом режиме? Вы можете попробовать использовать wait в любом случае.

14
ответ дан 28 November 2019 в 21:11
поделиться

попробуйте использовать bash second.sh и проверьте ваш second.sh и убедитесь, что у вас нет программ, которые работают в фоновом режиме

1
ответ дан 28 November 2019 в 21:11
поделиться

Вы можете просто добавить команду wait после выполнения второй сценарий, он будет ждать всех процессов, которые вы запускаете из основного сценария

. Вы даже можете восстановить PID вашего второго сценария, используя команду echo $! сразу после вызова второго сценария, а затем передайте этот PID в качестве аргумента команде wait

7
ответ дан 28 November 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: