Методы и примеры использования циклов while в сценариях оболочки

Вот несколько способов использования цикла while в сценарии оболочки, а также примеры кода:

Метод 1: базовый цикл while

#!/bin/bash
counter=0
while [ $counter -lt 5 ]
do
    echo "Counter: $counter"
    counter=$((counter + 1))
done

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

Метод 2. Чтение входных данных до тех пор, пока не будет выполнено определенное условие

#!/bin/bash
input=""
while [ "$input" != "quit" ]
do
    echo "Enter 'quit' to exit"
    read -r input
    echo "You entered: $input"
done

Этот скрипт будет продолжать читать вводимые пользователем данные до тех пор, пока пользователь не введет «выход». Он будет отображать вводимые пользователем данные на каждой итерации.

Метод 3. Использование условия на основе вывода команды

#!/bin/bash
service="httpd"
while pgrep -x "$service" >/dev/null
do
    echo "$service is running"
    sleep 5
done
echo "$service stopped"

В этом примере цикл while будет продолжать выполняться до тех пор, пока команда pgrep -x "$service"вернет статус успеха. Он будет печатать, что служба работает каждые 5 секунд, пока служба не перестанет работать.