Linux — довольно разнообразная операционная система, когда дело доходит до программирования. Это потому, что она придумала собственное программирование «Bash», которое многие другие операционные системы не поддерживают. Его программирование на Bash поддерживает почти все функции, предоставляемые другим стандартным программированием. Использование «циклов», т. е. циклов while и for, является одним из таких аспектов. Мы можем продолжать выполнять эти циклы, не останавливая их. Поэтому мы решили продемонстрировать концепцию цикла «пока истина» для наших пользователей Bash, которые не знакомы с этой концепцией.
Итак, начнем с входа в систему из системы Ubuntu 20.04. Чтобы начать реализацию примеров, мы должны убедиться, что оболочка терминала была открыта с помощью «Ctrl+Alt+T».
Давайте начнем эту статью с нашего первого примера использования цикла 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
Пришло время выполнить наш код Bash с инструкцией «Bash» в оболочке, как показано ниже:
$ bash bash.sh
Этот цикл будет продолжать выполняться и отображать строковое значение «Продолжить…» в своем операторе эха, пока мы принудительно не остановим его выполнение. Для этого нам нужно нажать сочетание клавиш «Ctrl + Z», чтобы цикл и программу можно было остановить. В противном случае он будет продолжать выполняться.
В первом примере мы увидели, как использовать цикл 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, как показано ниже.
Давайте возьмем наш последний пример, чтобы использовать условие, отличное от 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» условия. Это было сделано для четкого сравнения обоих обстоятельств и того, как справляться с ними по отдельности. Мы надеемся, что вы нашли эту статью полезной.