Каждый цикл имеет конечную продолжительность жизни, и в зависимости от цикла он заканчивается, когда условие либо истинно, либо ложно. Бесконечный цикл bash — это просто последовательность инструкций, которая повторяется бесконечно. У него нет конечного условия, условия, которое никогда не выполняется, или условия, которое стимулирует новую итерацию цикла. Бесконечный цикл bash можно создать с помощью циклов for, while и until. Немного изменив традиционный синтаксис бесконечного цикла, мы можем реализовать сценарии бесконечного цикла bash. Здесь нам необходимо создать цикл, который непрерывно выполняет команды до тех пор, пока он не будет принудительно остановлен извне программы.
Когда цикл выполняется бесконечно без какого-либо завершения, мы рассматриваем этот цикл как бесконечный цикл. Цикл while также может стать бесконечным циклом, если условие указано с помощью команды «true». Команда true не выполняет никаких задач и успешно возвращает код выхода «0». Здесь мы предоставили сценарий bash, в котором выполняется операция бесконечного цикла while. Цикл while принимает команду «true», которая используется только для удобочитаемости. Мы также можем оставить нулевую команду циклу while, поскольку она выполняется так же, как и истинная команда. Далее, с оператором «do» мы выполнили команду echo. Цикл while закрывается ключевым словом «done».
while true do echo "Выполните какую-нибудь задачу; Нажмите [CTRL+C], чтобы остановить!" done
Во время выполнения мы открыли терминал и запустили команду bash «./bash1.sh». Когда файл bash выполняется, он работает бесконечно и бесконечно печатает команду echo в терминале. Обратите внимание, что здесь мы взяли команду «true» для цикла while, но можно указать и команду «false».
Простая структура бесконечного цикла демонстрируется на примере скрипта. Мало того, что цикл while имеет функцию бесконечного цикла, мы можем иметь цикл for, который также работает бесконечно. Бесконечный цикл for также ведет себя так же, как и бесконечный цикл while. Здесь у нас есть сценарий бесконечного цикла for, в котором мы сначала объявили «цикл for», указанный без каких-либо условий и параметров. Он также успешно выполнен, потому что по умолчанию он установлен с командой true. После этого мы вызвали оператор echo с помощью ключевого слова «do». Мы также дали инструкции командам «сна» с оператором echo, а затем цикл while завершился оператором «done».
for (( ; ; )) do echo "Привет оболочка Bash" sleep 1 done
Сценарий бесконечного цикла for продолжает печатать оператор echo в терминале.
Другой способ создать бесконечный цикл bash — использовать цикл until. Цикл until выполняет итерацию по блоку команд до тех пор, пока требуемое условие не станет ложным. Цикл «until» становится бесконечным, если условие в операторе цикла всегда ложно. Бесконечный цикл, созданный до тех пор, пока не будет таким же, как мы дали сценарии для бесконечных циклов while и for. Бесконечный цикл «until» просто использует ключевое слово «do». Ниже мы предоставили скрипт bash с бесконечным циклом, где мы начинаем скрипт с объявления переменной «statement» и устанавливаем для нее значение «false». Затем мы определили переменную «loop_no», которая устанавливается со счетчиком «0».
После этого мы указали оператор «until», который принимает «$statement» в качестве выражения. Затем между операторами do и done используется ключевое слово echo. Здесь команда echo печатает количество циклов цикла, пока не будут возвращены ложные результаты. В каждом цикле цикла число будет увеличиваться. Мы использовали команду sleep в бесконечном цикле until для периодического выполнения скрипта.
#!/bin/bash statement=false loop_no=0 until $statement do echo "Цикл номер : $loop_no" ((loop_no++)) sleep 1 done
Сценарий бесконечного цикла при выполнении продолжает бесконечно отображать циклы цикла на терминале.
Иногда нам нужно вырваться из бесконечной петли. Бесконечный цикл также может существовать с оператором break. Бесконечный цикл должен заканчиваться, если выполняется определенный критерий. При использовании оператора break, цикл завершается или управление переходит к следующему оператору. Здесь мы использовали оператор break в сценарии bash. Во-первых, мы установили скрипт с выражением цикла while, которое принимает истинное значение. Затем мы дали команду print, используя модификатор echo. После этого у нас есть оператор if, который проверяет, выполнено ли условие или нет. Затем у нас есть оператор «break», который прерывает здесь цикл while.
#!/usr/bin/env bash while true do echo "Нажмите [CTRL+C], чтобы выйти из цикла..." sleep 2 if [ condition ] then break fi done
Когда оператор echo выполняется успешно, оператор break прерывает цикл while.
Теперь мы взяли сценарий, чтобы преодолеть это выполнение бесконечного цикла с помощью другого метода. Когда цикл получает условие, он завершается там, где это указанное условие выполняется. Сценарий цикла while реализован ниже, где мы сначала установили переменную «x» со значением «10». Затем мы указали цикл while, в котором дается выражение “while [ $x -gt 5 ]”. В выражении есть переменная «$x», которая должна быть больше «5», так как оператор «gt» между значением «5» и переменной «$x». После этого мы определили оператор echo, в котором вызывается «$x» для вывода значений. Оператор «x–» уменьшает значение «$x» на каждой итерации.
#!/usr/bin/bash x=10 while [ $x -gt 5 ]; do echo $x ((x--)) done echo "Результаты вне цикла"
Изображение отображало завершение цикла while, когда значение «x» достигло значения «6». Здесь условие становится ложным, потому что значение следующей итерации будет «5», что не удовлетворяет условию while. Кроме того, мы также можем использовать оператор continue, который используется для предотвращения выполнения блока кода.
Руководство помогает нам создать бесконечный цикл bash, который продолжает работать постоянно, потому что ему не задано конечное условие. Мы предоставили пример скрипта bash, в котором мы создали бесконечный цикл, используя циклы while, for и while. После создания примера bash с бесконечным циклом мы указали способы преодоления этих бесконечных циклов.