Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В Unix - оболочках , waitявляется командой , которая делает паузу до выполнения в фоновом процессе не закончилось.

Использование [ править ]

 подождите  [ n ]

где n - идентификатор pid или задания текущего выполняемого фонового процесса (задания). Если n не задано, команда ожидает завершения всех заданий, известных вызывающей оболочке.

wait обычно возвращает статус завершения последнего завершенного задания. Он также может вернуть 127, если n указывает на несуществующее задание, или ноль, если не было заданий для ожидания.

Поскольку waitнеобходимо знать таблицу заданий текущей среды выполнения оболочки, она обычно реализуется как встроенная оболочка .

Пример [ править ]

Эта команда может быть полезна, когда часть сценария может выполняться параллельно для реализации барьера, где предстоящий раздел зависит от успешного завершения предыдущих разделов.

В следующем примере выполняется выборка каталога src / с машины с именем iona с помощью rsync и одновременное обновление библиотек, от которых зависит эта программа, перед построением комбинации.

#! / usr / bin / env bash# Сценарий параллельного обновления, использующий команду ожидания# Обновить локальную копию
rsync iona: src /. & # Обновить необходимые библиотеки или выйти с сообщением об ошибке, если make по какой-то причине не удалось
выполнить make -C lib ||  выход  1# Дождитесь завершения rsync (возможно, уже произошло) и завершите работу waitделать

Дождитесь указанного идентификатора управления заданием:

$ ls -R /> / dev / null 2 > & 1  &  # запуск любого длительного фонового процесса [ 2 ]  1986
$ wait % 2 # ожидает завершения фонового задания номер 2, затем возвращает

См. Также [ править ]

Внешние ссылки [ править ]