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

Печально не то, что надвигается старость, а что уходит молодость (А. Дюма-сын).

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

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

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

 

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

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

 

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

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

#!/bin/bash
for A in $(seq 5 2 25)
do
  echo "Числа, равные $A являются"
done

 

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

./File.sh

 

destroyer@andreyex:-$ ./File.sh

Числа, равные 5, являются

Числа, равные 7, являются 

Числа, равные 9, являются

Числа, равные 11, являются

Числа, равные 13, являются

Числа, равные 15, являются

Числа, равные 17, являются

Числа, равные 19, являются

Числа, равные 21, являются

Числа, равные 23, являются

Числа, равные 25, являются

 

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

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

#!/bin/bash
for A in $(ls *.txt); do
mv $A (basename $A .txt)_$(date %d%m%).txt
done

 

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

#!/bin/bash
for file in *.txt; do
mv -- "$file" "{file%.txt}.sh"
done

 

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

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

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

#!/bin/bash
#infinite loop
for (( ; ; ))
do
  echo "Введите номер между 10 и 50"
  read n
  if [ $n == "quit" ]
  then
    echo "terminated"
    exit 0
  fi
  if (( $n < 10 || $n > 50 ))
  then
    echo "Номер находится вне зоны"
  else
    echo "Это число равно $n"
  fi
done

 

Читать  Как определить, когда файл был создан в Linux

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

 

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

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

#!/bin/bash
for  (( n=5; n>=1; n-- ))
do
 echo "Книга $n"
done

 

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

~/Documents$ ./file.sh Book 5

Книга 4
Книга 3
Книга 2
Книга 1

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

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

#!/bin/bash
limit=15
m=20
n=10
until [[ $m -lt $limit || $n -gt $limit ]];
do
echo "If M = $m then N = $n"
((m--))
((n++))
done

 

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

 

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

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

#!/bin/bash
echo "Содержимое введенного файла является:"
while
read line
do
 echo $line
done <~Documents/AndreyEx.txt

 

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

 

Запись в файл

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

#!/bin/bash
file-Example.txt
echo "Введите содержимое в $file" 
while read line 
do 
echo $line >> $file
done

 

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

Читать  Поиск доступных команд Linux с помощью apropos

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

 

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

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

#!/bin/bash
num=16
until false
do
 ((num--))
 if [[ $num -eq 13 ]]
 then
  continue
 elif [[ $num -le 4 ]]
 then
  break
 fi
 echo "AndreyEx = $num"
done

 

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

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

 

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

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

#!/bin/bash
marks="0"
AVERAGE="0"
SUM="500"
NUM="5"
while true; do
 echo -n "Введите свои оценки или нажмите "q", чтобы прервать "; read marks;
 if (("$marks" < "0")) || (("$marks" > "100")); then
  echo "Пожалуйста, введите свои оценки"
 elif [ "$marks" == "q" ]; then
  echo "средние оценки составляют: $AVERAGE%"
  break
 else
  SUM=$[$SUM + $marks]
  NUM=$[$NUM + 1]
  AVERAGE=$[$SUM / $NUM]
 fi
done

 

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

 

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

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

#!/bin/bash
while getopts N:F:M: OPT
do
 case "${OPT}"
 in
  N) name=${OPTARG};;
  F) fathername=${OPTARG};;
  M) mothername=${OPTARG};;
  *) echo "Invalid"
    exit 1;;
   esac
done
printf "Name:$name\nFather Name:$fathername\nMother Name:$mothername\n"

 

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

 

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

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

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

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

**URL-адрес комментаторов с открытой ссылкой

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

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

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

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

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

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

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

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

close
galka

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

close