Обзор
Wait, что буквально означает 'ждать', приостанавливает выполнение оболочки в скриптах до завершения фоновых задач. Обычно она используется, когда несколько задач запускаются параллельно в фоновом режиме с помощью символа `&`, и необходимо дождаться их полного завершения, прежде чем продолжить выполнение следующей задачи. Использование `wait` также позволяет скрипту проверять код выхода фонового процесса, что помогает определить успешность выполнения задачи.
Основные особенности
Основные особенности команды wait:
- Ожидает завершения определенной фоновой задачи.
- Может принимать в качестве аргумента номер задачи (job number) или ID процесса (PID).
- При запуске без аргументов ожидает завершения всех фоновых задач.
- Полезна для синхронизации нескольких параллельных задач в скриптах оболочки.
Основные опции
Команда wait принимает в качестве аргументов номер задачи или PID и является простой командой с небольшим количеством опций.
1) Опции выполнения
2) Справка
Сгенерированная команда:
Комбинируйте команды.
Описание:
`wait` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Изучите функциональность команды wait на различных примерах использования.
Ожидание всех фоновых задач
sleep 5 &
sleep 10 &
jobs
wait
echo '모든 작업이 완료되었습니다.'
Запускает несколько задач `sleep` в фоновом режиме, затем ожидает их завершения с помощью команды `wait`.
Ожидание конкретной задачи
sleep 10 &
sleep 5 &
jobs
wait %1
echo '1번 작업이 완료되었습니다.'
Ожидает завершения задачи №1 из двух запущенных. Используйте `jobs` для проверки номера задачи и `wait %1`.
Ожидание по ID процесса (PID)
sleep 10 &
PID=$!
echo "PID $PID 인 작업이 시작되었습니다."
wait $PID
echo "PID $PID 인 작업이 완료되었습니다."
В скрипте сохраняет PID фонового процесса в переменную с помощью `$!` и затем ожидает завершения этого PID.
Установка
wait — это встроенная команда оболочки (bash, zsh и т. д.), поэтому отдельная установка не требуется.
Советы и примечания
Здесь собраны важные моменты, которые следует учитывать при использовании команды wait.
Советы
- `wait` приостанавливает выполнение оболочки до завершения фонового процесса. Если процесс не завершается, оболочка будет ждать бесконечно.
- Код завершения команды `wait` совпадает с кодом завершения ожидаемого процесса. Это позволяет скрипту проверять успешность выполнения задачи.
- Чтобы использовать номер задачи (`%1`), сначала необходимо проверить фоновые задачи текущей оболочки с помощью команды `jobs`. `$!` — это специальная переменная, содержащая PID последнего процесса, запущенного в фоновом режиме.