У цьому підручнику ми розглянемо команду Bash Wait у Linux.
Синтаксис:
Загальний синтаксис команди Wait в Linux:
почекати [опція] ID
Ідентифікатор - це ідентифікатор процесу або ідентифікатор завдання.
Пояснення команди Bash Wait в Linux:
Спочатку створіть файл за допомогою сенсорної команди:
$ touch BashWait.ш
Зробіть цей файл виконуваним, використовуючи команду нижче:
$ chmod + x ім'я файлу
Після надання файлу привілеїв виконуваного файлу відкрийте файл і напишіть скрипт у файл bash:
#!/ bin / bashспати 3 &
processID = $!
echo "PID: $ processID"
зачекайте $ processID
echo "Статус виходу: $?"
$! є змінною в BASH, яка зберігає PID останнього процесу.
Тепер запустіть сценарій наступним чином:
$ ./ ім'я файлу$ ./ BashWait.ш
Ідентифікатор процесу та існуючий статус з’являться в оболонці.
Використання опції -n:
З опцією -n команда очікування очікує лише на одне завдання із наданого ідентифікатора процесу або специфікації завдання, щоб повернути його статус виходу. Wait -n чекає закінчення будь-якого фонового завдання і повертає статус виходу із завдання, якщо аргументи не вказані.
Напишіть у своєму сценарії наведені нижче рядки:
#!/ bin / bashспати 30 &
спати 8 &
спати 7 &
почекати -н
echo "Перше завдання виконано."
почекай
echo "Усі завдання виконано."
Далі запустіть сценарій ще раз, і коли перше завдання буде завершено, він надрукує повідомлення на терміналі і дочекається завершення всіх інших завдань.
Використання опції -f:
Параметр -f чекає зупинки кожного ідентифікатора процесу або завдання перед поверненням коду виходу. Керування роботою доступне лише для адаптивних підказок за замовчуванням.
Відкрийте термінал і запустіть команду:
Зачекайте на процес 3944.
Відкрийте інше вікно терміналу та виконайте команду kill, щоб завершити процес.
Статус буде змінено. Команда Wait завершить і поверне код виходу з процесу.
Повторіть наведені вище кроки за допомогою команди -f.
Сценарій з командою Wait:
Ми використовуємо "привіт".sh 'і' bash.ш 'сценарії для демонстрації. Привіт.sh 'скрипт друкує числа від 1 до 5, а' bash.sh 'скрипт викликає привіт.sh і запускає його у фоновому режимі, маючи PID привіт.ш і чекаючи його закінчення.
Створіть два сценарії з іменами hello та bash:
Додайте подані нижче рядки у привіт.файл sh:
#!/ bin / bashдля i в 1 2 3 4 5 6 7 8 9 10
робити
ехо “привіт.sh - номер циклу $ i."
зроблено
Додайте наведені нижче рядки в скрипт bash:
#!/ bin / bashехо “Розпочався баш.ш ”
луна “Почав привіт.ш ”
./Здравствуйте.ш &
process_id = $!
зачекайте $ process_id
ехо “Завершено привіт.ш
Вихід:
Висновок:
Коли користувач хоче зупинити процес, система звільняє всі ресурси, що зберігаються процесом, і чекає запуску іншого. Нам потрібно буде повідомити процес про те, що він може перезапустити виконання після завершення інших процесів. Команда очікування в bash чекає завершення виконання і повертає статус виходу, коли виконання процесу завершено. У цьому посібнику ми побачили кілька прикладів команди Bash wait у Linux.