Команда ожидания в Linux

Wait Command Linux



ждать - это встроенная команда Linux, ожидающая завершения любого запущенного процесса. ждать команда используется с определенным идентификатором процесса или идентификатором задания. Когда в оболочке запущено несколько процессов, текущей оболочке будет известен только идентификатор процесса последней команды. Если на этот раз будет выполнена команда ожидания, она будет применена к последней команде. Если с командой wait не указан идентификатор процесса или идентификатор задания, тогда он будет ждать завершения всех текущих дочерних процессов и возвращает статус выхода.

Значение статуса выхода команды ожидания зависит от команды, указанной последним указанным операндом. Когда какой-либо процесс завершается ненормально, статус выхода будет больше 128 и должен отличаться от значений статуса выхода других команд. ждать Команда завершается со значением 0, когда она вызывает без операндов и все идентификаторы процессов, известные текущей оболочке, завершены. Если команда ожидания обнаруживает какую-либо ошибку, она возвращает любое значение от 1 до 126. Если последний идентификатор процесса неизвестен, команда ожидания завершается со значением 127. Как вы можете использовать команду ожидания в Linux, показано в этом руководстве.







Пример-1: Использование команды ожидания для нескольких процессов

После выполнения следующего сценария два процесса будут работать в фоновом режиме, а идентификатор процесса первой команды echo сохраняется в переменной $ process_id. Когда команда ожидания выполняется с $ process_id, следующая команда будет ждать завершения задачи первой команды echo. Вторая команда ожидания используется с ‘ $! ’И это указывает идентификатор последнего запущенного процесса. ‘ $? ’Используется для чтения значения статуса команды ожидания.



#! / bin / bash
выбросил 'test wait command1' &
process_idзнак равно$!
выбросил 'команда ожидания тестирования2' &
ждать $ process_id
выбросилРабота1вышел со статусом$?
ждать $!
выбросилРабота2вышел со статусом$?

Выход:



$трепатьwait1.sh





Пример-2: Тестовая команда ожидания после использования команды kill

В следующем сценарии команда ожидания выполняется после завершения процесса. Команда sleep выполняется как фоновый процесс, а команда kill выполняется для завершения текущего процесса. После этого выполняется команда ожидания с идентификатором завершенного процесса. В выходных данных будет показан идентификатор завершенного процесса.

#! / bin / bash
выбросил 'Тестирование команды ожидания'
спать двадцать &
пидзнак равно$!
убийство $ pid
ждать $ pid
выбросил $ pidбыл прекращен.

Выход:



$трепатьwait2.sh

Пример-3: Проверить значение статуса выхода

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

#! / bin / bash
функцияпроверить()
{
выбросил 'Сон на 1 доллар'
спать 1 доллар
выход 2 доллара
}
проверить1 доллар 2 доллара &
бзнак равно$!
выбросил 'Проверка статуса'
ждать $ млрд && выбросилOk|| выбросилНЕ ХОРОШО

Выход:

$трепатьwait3.sh3 0
$трепатьwait3.sh3 5

Надеюсь, это руководство поможет правильно изучить команду use wait. В Linux есть еще одна команда с именем спать ждать определенное количество раз, но между этими командами есть некоторые различия. Если вам интересно узнать о команда сна тогда вы можете перейти по этой ссылке.