Команды Linux

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

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

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

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

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

#!/ bin / bash
echo "проверка, подождите, команда1" &
process_id = $!
echo "команда ожидания тестирования2" &
ждать $ process_id
echo Задание 1 завершено со статусом $?
подожди $!
echo Задание 2 завершено со статусом $?

Выход:

$ bash wait1.ш

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

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

#!/ bin / bash
echo "Проверка команды ожидания"
спать 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 есть еще одна команда с именем спать ждать определенное количество раз, но между этими командами есть некоторые различия. Если вам интересно узнать о команде сна, вы можете посетить эту ссылку.

Как показать наложение OSD в полноэкранных приложениях и играх Linux
Игра в полноэкранные игры или использование приложений в полноэкранном режиме без отвлекающих факторов может отрезать вас от соответствующей системной...
Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...
Как разработать игру в Linux
Десять лет назад не многие пользователи Linux могли бы предсказать, что их любимая операционная система однажды станет популярной игровой платформой д...