Поиск по сайту:

Париж — единственное место, где можно обойтись без счастья (А. Сталь).

Bash. While True Loop

4 мин для чтения
FavoriteLoadingДобавить в избранное
31 марта 2022
Bash Heredoc
Linux — довольно разнообразная операционная система, когда дело доходит до программирования. Это потому, что она придумала собственное программирование «Bash», которое многие другие операционные системы не поддерживают. Его программирование на Bash поддерживает почти все функции, предоставляемые другим стандартным программированием. Использование «циклов», т. е. циклов while и for, является одним из таких аспектов. Мы можем продолжать выполнять эти циклы, не останавливая их. Поэтому мы решили продемонстрировать концепцию цикла «пока истина» для наших пользователей Bash, которые не знакомы с этой концепцией.

Итак, начнем с входа в систему из системы Ubuntu 20.04. Чтобы начать реализацию примеров, мы должны убедиться, что оболочка терминала была открыта с помощью «Ctrl+Alt+T».

 

Пример 01:

Давайте начнем эту статью с нашего первого примера использования цикла while с условием «Истина». Но перед этим нам нужно создать Bash-файл с командой touch терминальной оболочки Ubuntu 20.04. Назовите файл Bash как «bash.sh». Этот файл будет создан в домашней папке Linux. Вы можете использовать любой встроенный редактор системы Ubuntu 20.04, чтобы открыть и создать код в файле Bash. Вместо использования инструкции «nano» с заголовком файла просто используйте редактор GNU Nano в оболочке терминала. Он откроет ваш пустой файл в терминале, как экран редактора GNU Nano.

Поскольку в нашем коде необходимо использовать цикл while true, нам придется добавить поддержку Bash в первую строку кода. После этого мы начали наш однострочный цикл while с истинным условием. Это истинное условие означает, что цикл будет продолжать выполняться до тех пор, пока какое-либо внешнее действие принудительно не остановит его. В его предложении do мы использовали оператор echo для отображения строки символов «Продолжить…» до тех пор, пока цикл не будет выполнен в оболочке. Предложение done означает, что здесь цикл while завершен.

Давайте проверим, как этот однострочный цикл while «true» выводится в оболочке терминала после сохранения этого кода с помощью сочетания клавиш Ctrl+S. Нажмите Ctrl+X, чтобы выйти из файла. На приложенном скриншоте вы можете просмотреть файл кода:

#!/bin/bash
while true; do echo "Продолжить… "; done

 

Читать  Как решить ошибку “Could not open lock file /var/lib/dpkg/lock-frontend”

Пришло время выполнить наш код Bash с инструкцией «Bash» в оболочке, как показано ниже:

$ bash bash.sh

 

Этот цикл будет продолжать выполняться и отображать строковое значение «Продолжить…» в своем операторе эха, пока мы принудительно не остановим его выполнение. Для этого нам нужно нажать сочетание клавиш «Ctrl + Z», чтобы цикл и программу можно было остановить. В противном случае он будет продолжать выполняться.

 

Пример 02:

В первом примере мы увидели, как использовать цикл while true для непрерывного отображения строкового значения в оболочке без остановки. В этом примере мы выполним довольно похожее действие с немного другой функциональностью. Итак, вам нужно открыть тот же файл Bash и добавить поддержку Bash через его путь /bin/bash. Инициализируйте переменную «X» значением 1, как показано ниже. Цикл while запущен с условием «ture». В его части «выполнить» мы столкнулись с оператором «echo» для отображения текущего значения x. Кроме того, мы использовали встроенное предложение «let» в части «do», чтобы каждый раз увеличивать значение переменной «x» на 1.

После приращения функция сна использовалась для 3-секундного сна во время выполнения. После всех этих 3 шагов в части «выполнить» наш цикл while будет продолжать повторять этот процесс до тех пор, пока программа не будет завершена из-за какой-либо внешней активности. Часть «done» показывает, что цикл завершен. Давайте сохраним этот код и запустим его в оболочке. На приложенном скриншоте вы можете просмотреть файл кода:

#!/bin/bash 

x=1

while true; do echo "Значение x: $x"; let x++; sleep 3; done

 

После запуска этого кода с инструкцией «Bash» цикл while начал выполняться. Он отображает каждое значение «x» с самого начала и приостанавливается на 3 секунды на каждой итерации после приращения. Затем будет распечатано следующее увеличенное значение, и процесс продолжится. Вывод показан на следующем снимке экрана для предыдущего кода:

$ bash bash.sh

 

Чтобы остановить этот безостановочный цикл, мы нажали Ctrl+Z, как показано ниже.

Читать  Исправление ошибки сломанной трубы с помощью SSH-соединения

 

Пример 03:

Давайте возьмем наш последний пример, чтобы использовать условие, отличное от true, в цикле while. Итак, мы начали код Bash с инициализации переменной «x» значением 2. Цикл while принимает условие в своих квадратных скобках. Он использует оператор «-lt», чтобы проверить, меньше ли значение «x» 7 или нет. Если условие выполнено, часть «do» будет выполнена. Следовательно, оператор echo будет отображать значение «x» и увеличивать его на 1, используя «x=&(($x+1))», как показано. После достижения 7 цикл автоматически остановился в соответствии с пунктом «done». Сохраним наш код Ctrl+S и выйдем из него Ctrl+X.

# bash. sh
x=2; 
while [[ $x -lt 7 ]] 
do 
echo "Значение: $x" 
x=$(( $x + 1 )) 
done

 

Теперь запустите файл Bash с запросом «Bash», показанным на изображении ниже. Цикл выполняется и продолжает отображать значение «x», пока оно не достигнет 7 при увеличении.

$ bash bash.sh

 

Заключение:

Эта статья было посвящено использованию цикла “while true” в скрипте Bash. Мы обсудили использование цикла while true с очень простыми кодами Bash и обратились к циклу while без «true» условия. Это было сделано для четкого сравнения обоих обстоятельств и того, как справляться с ними по отдельности. Мы надеемся, что вы нашли эту статью полезной.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:
5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close