10 крутых и потрясающих примеров циклов Bash

10 Krutyh I Potrasausih Primerov Ciklov Bash



В языке программирования в основном существует три типа циклов (for, while и until). Все три типа петель важны по-разному. Между циклами while и until нет большой разницы, но цикл for работает совершенно иначе, чем эти два. Вот почему вы можете использовать эти циклы для создания интерактивных скриптов как пользователь bash.

Таким образом, изучение примеров bash может помочь вам улучшить свои навыки в создании скриптов. Итак, в этом уроке мы включим 10 классных и потрясающих примеров циклов bash, которые вы можете попробовать, чтобы улучшить свои навыки написания сценариев.







10 крутых и потрясающих примеров циклов Bash

В этом разделе мы объясним различные примеры и подходы, которые мы использовали в циклах.



Команда Seq с циклом в Bash

Вы можете использовать команду seq в цикле for для создания последовательности чисел. Например, у вас есть bash-скрипт «File.sh», содержащий следующий код:



#!/бин/баш
за А в $ ( последовательность 5 два 25 )
делать
эхо 'количество находятся'
Выполнено





Вы получите следующий результат после выполнения скрипта в терминале:

. / файл.sh




Переименовать файлы с помощью цикла

Используя сценарий bash, вы можете использовать циклы for для переименования нескольких файлов. Например, у вас есть несколько файлов .txt и вы хотите добавить текущую дату с именем. Итак, вот пример скрипта, который вы можете использовать:

#!/бин/баш
за А в $ ( лс * .текст ) ; делать
мв ( базовое имя .текст ) _$ ( свидание % д % м % ) .текст
Выполнено


Теперь вы можете запустить скрипт, и он изменит имя всех файлов .txt, добавив текущую дату:

. / Мой файл.sh



Точно так же вы можете изменить расширения файла с помощью одного скрипта. Итак, давайте изменим расширение .txt на .sh с помощью следующего скрипта:

#!/бин/баш
за файл в * .текст; делать
мв -- ' $файл ' '{файл%.txt}.sh'
Выполнено

После выполнения скрипта в терминале вы получите файлы .sh, а не .txt:

. / Мой файл.sh


Бесконечный цикл For в Bash

Когда в цикле не определено условие завершения, он называется бесконечным циклом. В этом примере цикла Bash мы рассмотрим бесконечный цикл for в bash. Следующий бесконечный цикл for определяется двойной точкой с запятой ( ; ; ) и не содержит начальной части, действия или завершения.

Приведенный ниже сценарий будет продолжаться до тех пор, пока вы не нажмете Ctrl+C или не наберете «quit» в качестве ввода. Этот скрипт будет печатать каждое число от 10 до 50, которое задано в качестве входных данных. В противном случае он напечатает «число вне допустимого диапазона».

#!/бин/баш
#бесконечная петля
за ( ( ; ; ) )
делать
эхо 'Введите число от 10 до 50'
читать н
если [ $n == 'покидать' ]
тогда
эхо 'прекращено'
выход 0
быть
если ( ( $n < 10 || $n > 50 ) )
тогда
эхо «Номер вне диапазона»
еще
эхо 'Число есть $n '
быть
Выполнено

Мы дали 45 и 23 допустимых ввода в приведенном выше скрипте. После этого мы печатаем 2 в качестве входных данных, что сообщает на выходе, что «число выходит за пределы допустимого диапазона». После этого, чтобы закрыть скрипт, набираем quit в качестве ввода. Здесь вы также можете нажать Ctrl+C, чтобы выйти из бесконечного цикла.

Цикл с тремя выражениями в Bash

Из названия цикла из трех выражений известно, что он состоит из трех выражений, также называемых управляющими выражениями. Первое выражение (EXP1) — это инициализатор, второе выражение (EXP2) — проверка цикла или условие, а третье выражение (EXP3) — это выражение/шаг подсчета. Давайте запустим цикл из трех выражений в bash:

#!/бин/баш
за ( ( н знак равно 5 ; н > знак равно 1 ; н-- ) )
делать
эхо 'Книга $n '
Выполнено

Запустив приведенный выше скрипт, вы получите следующий вывод.

Цикл с несколькими условиями

Мы использовали цикл until с несколькими условиями в следующем примере цикла bash. В этом сценарии мы взяли «m» и «n», две переменные, значения которых равны 20 и 10 соответственно, и сохранили ограничение в 15. Здесь мы объединяем условия «m» и «n» в цикле, в котором цикл будет выполняться до тех пор, пока значение «m» не станет меньше предела, а «n» больше предела.

#!/бин/баш
ограничение знак равно пятнадцать
м знак равно 20
н знак равно 10
до того как [ [ -lt $лимит || $n -gt $лимит ] ] ;
делать
эхо «Если М = тогда Н = $n '
( ( м-- ) )
( ( п++ ) )
Выполнено

Вы можете видеть, что запуск приведенного выше скрипта будет выполняться до тех пор, пока значения «m» и «n» не сравняются.

Чтение файла в Bash

В bash вы можете прочитать содержимое файла несколькими способами. В этом примере цикла bash мы будем читать содержимое файла по имени файла. Мы можем использовать следующий скрипт для чтения файла в bash:

#!/бин/баш
эхо 'Содержимое введенного файла:'
пока
читать линия
делать
эхо $строка
Выполнено < ~Документы / Linuxhint.txt

После запуска приведенного выше скрипта вы можете прочитать полное содержимое введенного файла.

Запись в файл

Вы можете использовать циклы в скрипте для редактирования файла прямо из терминала. Например, если у нас есть текстовый файл «Example.txt» и мы хотим добавить некоторую информацию, мы можем использовать следующий скрипт:


Если вы запустите приведенный выше скрипт, он попросит вас ввести данные:


После того, как вы введете данные, нажмите CTRL + D, чтобы сохранить файл, и CTRL + Z, чтобы успешно завершить процесс.

Разрыв и продолжение цикла операторов в Bash

В bash вы можете продолжить оператор цикла после разрыва. Оператор break выходит из цикла и затем передает управление следующему заданному оператору. Итерация номер два начинается после того, как текущая итерация пропускается с тем же оператором continue.

#!/бин/баш
на одном знак равно 16
до того как ЛОЖЬ
делать
( ( на одном-- ) )
если [ [ $num -экв 13 ] ]
тогда
Продолжать
Элиф [ [ $num - 4 ] ]
тогда
ломать
быть
эхо 'ЛинуксПодсказка= $num '
Выполнено

В следующем скрипте bash вы можете видеть, что когда «num» равно 13, он пропускает остальную часть тела цикла и переходит к следующей итерации. Точно так же цикл прерывается, когда «число» меньше или равно 4.


Приведенный выше сценарий показывает, что цикл начинается с 15, прерывается на 13 и продолжается до 5.

Вычисление среднего значения в Bash

Вы можете рассчитать среднее значение, запустив скрипт в цикле bash. При этом пользователь может рассчитать среднее число чисел в пределах определенного диапазона. Следующий скрипт вычисляет среднее значение введенных пользователем данных.

#!/бин/баш
Метки знак равно '0'
СРЕДНИЙ знак равно '0'
СУММА знак равно '500'
НА ОДНОМ знак равно '5'
пока истинный ; делать
эхо 'Введите свои оценки или нажмите 'q', чтобы прервать' ; читать Метки;
если ( ( ' $знаки ' < '0' ) ) || ( ( ' $знаки ' > '100' ) ) ; тогда
эхо 'Пожалуйста, введите ваши оценки'
Элиф [ ' $знаки ' == 'к' ] ; тогда
эхо «Средние оценки: $СРЕДНИЙ %'
ломать
еще
СУММА =$ [ $СУММ + $знаки ]
НА ОДНОМ =$ [ $ЧИСЛО + 1 ]
СРЕДНИЙ =$ [ $СУММ / $ЧИСЛО ]
быть
Выполнено

Если введенное значение выходит за пределы допустимого диапазона, печатается сообщение «Пожалуйста, введите свои оценки». Когда пользователь нажимает «q» после ввода всех оценок, скрипт вычисляет приблизительное среднее значение всех введенных чисел.

Когда приведенный выше скрипт будет запущен, ваш вывод будет примерно таким.

Прочитайте аргументы командной строки в Bash

В bash вы можете читать отдельные аргументы командной строки, используя циклы. Сценарий печатает отформатированные значения аргументов. Мы запускаем аргументы командной строки в bash, используя цикл while в следующем скрипте. Благодаря этому вы напечатаете значение, передавая параметр допустимого значения аргумента с помощью одной команды.

#!/бин/баш
пока получить Н:Ж:М: ОПТ.
делать
кейс ' ${OPT} '
в
Н ) имя знак равно ${OPTARG} ;;
Ф ) имя Отца знак равно ${OPTARG} ;;
М ) Имя матери знак равно ${OPTARG} ;;
* ) эхо 'Инвалид'
выход 1 ;;
эсак
Выполнено
printf 'Имя: $имя \n Имя Отца: $отчество \n Имя матери: $материнское имя \n '

Таким образом, вы можете вывести отформатированные значения аргументов на вывод, запустив приведенный выше скрипт в bash.

Подведение итогов

Итак, это была краткая информация о 10 крутых и потрясающих примерах циклов bash, которые вы можете изучить. Мы использовали различные типы циклов, чтобы легко создать интерактивный сценарий. Кроме того, мы также объяснили основные подходы, используемые в приведенных выше примерах. Если у вас есть подробные сведения о циклах в bash, посетите наш официальный веб-сайт, чтобы узнать больше.