В этом руководстве мы рассмотрим команду 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.