Команда Bash Wait в Linux

Bash Wait Command Linux



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

В этом руководстве мы рассмотрим команду Bash Wait в Linux.







Синтаксис:

Общий синтаксис команды Wait в Linux:



ждать [вариант] ID

Идентификатор будет идентификатором процесса или идентификатором задания.



Объяснение команды ожидания Bash в Linux:

Сначала создайте файл с помощью сенсорной команды:





$трогатьBashWait.sh

Сделайте этот файл исполняемым, используя следующую команду:



$chmod+ x имя файла

Как только исполняемые привилегии предоставлены файлу, откройте файл и напишите сценарий в файле bash:

#! / bin / bash

спать 3 &

processIDзнак равно$!

выбросил 'PID:$ processID'

ждать $ processID

выбросил 'Статус выхода: $?'

$! - это переменная в BASH, в которой хранится PID самого последнего процесса.

Теперь запустите сценарий следующим образом:

$./имя файла

$./BashWait.sh

ID процесса и статус Exist появятся в оболочке.

Использование опции –n:

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

Напишите в скрипте следующие строки:

#! / bin / bash

спать 30 &

спать 8 &

спать 7 &

ждать -n

выбросил «Первая работа завершена».

ждать

выбросил «Все работы выполнены».

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

Использование опции –f:

Параметр -f ожидает остановки каждого идентификатора процесса или задания перед возвратом кода выхода. По умолчанию управление заданиями доступно только для реагирующих запросов.

Откройте терминал и запустите команду:

Дождитесь процесса 3944.

Откройте другое окно терминала и выполните команду kill, чтобы завершить процесс.

Статус будет изменен. Команда ожидания завершится и вернет код выхода процесса.

Повторите вышеуказанные шаги с командой –f.

Скрипт с командой ожидания:

Мы используем скрипты hello.sh и bash.sh для демонстрации. Сценарий «hello.sh» печатает числа от 1 до 5, а сценарий «bash.sh» вызывает hello.sh и запускает его в фоновом режиме, имея PID hello.sh и ожидая его завершения.

Создайте два скрипта с именами hello и bash:

Добавьте приведенные ниже строки в файл hello.sh:

#! / bin / bash

дляяв 1 2 3 4 5 6 7 8 9 10

делать

выбросилhello.sh - Номер цикла$ i.

сделано

Добавьте приведенные ниже строки в сценарий bash:

#! / bin / bash

выбросилЗапустил bash.sh

выбросилНачат hello.sh

./hello.sh&

process_idзнак равно$!

ждать $ process_id

выбросилЗавершенный hello.sh

Выход:

Заключение:

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