Значение статуса выхода команды ожидания зависит от команды, указанной последним указанным операндом. Когда какой-либо процесс завершается ненормально, статус выхода будет больше 128 и должен отличаться от значений статуса выхода других команд. ждать команда завершается со значением 0, когда она вызывает без операндов и все идентификаторы процессов, известные текущей оболочке, завершены. Если команда ожидания обнаруживает какую-либо ошибку, она возвращает любое значение от 1 до 126. Если последний идентификатор процесса неизвестен, команда ожидания завершается со значением 127. В этом руководстве показано, как использовать команду ожидания в Linux.
Пример-1: Использование команды ожидания для нескольких процессов
После выполнения следующего скрипта два процесса будут работать в фоновом режиме, а идентификатор процесса первой команды echo сохраняется в переменной $ process_id. Когда команда ожидания выполняется с $ process_id, следующая команда будет ждать завершения задачи первой команды echo. Вторая команда ожидания используется с '$!'и это указывает идентификатор последнего запущенного процесса. '$?'используется для чтения значения статуса команды ожидания.
#!/ bin / bashecho "проверка, подождите, команда1" &
process_id = $!
echo "команда ожидания тестирования2" &
ждать $ process_id
echo Задание 1 завершено со статусом $?
подожди $!
echo Задание 2 завершено со статусом $?
Выход:
$ bash wait1.ш
Пример-2: Тестовая команда ожидания после использования команды kill
В следующем скрипте команда ожидания выполняется после завершения процесса. Команда сна выполняется как фоновый процесс, а команда kill выполняется для завершения запущенного процесса. После этого выполняется команда ожидания с идентификатором завершенного процесса. На выходе будет показан идентификатор завершенного процесса.
#!/ bin / bashecho "Проверка команды ожидания"
спать 20 и
pid = $!
убить $ pid
подожди, $ pid
echo $ pid был прекращен.
Выход:
$ bash wait2.ш
Пример-3: Проверить значение статуса выхода
В следующем скрипте функция проверять() вызывается двумя значениями аргумента. В начале руководства обсуждается, что если команда ожидания выполнена успешно, значение выхода будет равно 0, и если команда ожидания обнаружит любую ошибку, она вернет любое значение от 1 до 126. После запуска сценария, если вы передадите 0 в качестве значения второго аргумента, тогда команда ожидания завершится успешно, а если вы передадите какое-либо значение больше нуля, она завершится безуспешно.
#!/ bin / bashпроверка функции ()
echo "Сон на 1 доллар"
спать $ 1
выход $ 2
чек $ 1 $ 2 и
b = $!
echo "Проверка статуса"
подождите, $ b && echo OK || эхо НЕ ОК
Выход:
$ bash wait3.ш 3 0$ bash wait3.ш 3 5
Надеюсь, это руководство поможет правильно изучить команду use wait. В Linux есть еще одна команда с именем спать ждать определенное количество раз, но между этими командами есть некоторые различия. Если вам интересно узнать о команде сна, вы можете посетить эту ссылку.