Один из лучших способов облегчить себе жизнь с помощью технологий, будь то на работе или дома, — использовать автоматизацию. Автоматизация задач с помощью сценариев и заданий по расписанию — это верный способ сэкономить время, головную боль и усилия. Однако не сразу понятно, с чего начать. Здесь мы покажем вам, как начать работу с командой цикла Bash for
, одним из основных инструментов автоматизации ИТ.
Читайте также: Используйте эти сочетания клавиш для быстрого перемещения в Bash
Настройка тестовой среды
Первое, что вам понадобится, — это работающий экземпляр Bash. Это оболочка по умолчанию в Терминале в Linux, Unix, BSD и macOS (если вы не используете зш ). Вы можете проверить, какую оболочку вы используете, введя в терминал следующую команду:
echo $SHELL
Он должен распечатать оболочку, которую вы используете. В выводе указано, что я использую /bin/bash
, а это именно то, что мне нужно.
Вам также понадобится текстовый редактор — любой редактор, который вы выберете, подойдет. Я использую Nano в терминале, но вы также можете легко использовать Vim или Emacs в терминале или что-то вроде Gedit, Kate или Sublime в графическом интерфейсе.
Создайте файл сценария в текстовом редакторе, используя команду touch
или просто введя имя текстового редактора и имя файла, который вы хотите создать. Что касается меня, я мог бы просто ввести nano for-loop-test.sh
и было бы здорово.
Цикл Bash For: основы
Цикл For в Bash сообщает оболочке выполнить итерацию по указанному диапазону объектов и выполнить указанную команду для этих объектов. Что это значит? Я думаю, будет проще показать вам. Это очень простой цикл For.
В первой строке for i in 1 2 3 4 5
задается цифра переменная «i» и диапазон от 1 до 5. С таким же успехом это может быть другая, более сложная последовательность чисел, или это может быть список введенных туда файлов или каталог.
Следующий бит — это базовое форматирование: команда, которую нужно выполнить, находится во вкладке. do
и done
являются частью синтаксиса цикла For и должны присутствовать там. Если бы я запустил этот скрипт, я бы получил такой результат:
Test round 1 Test round 2 Test round 3 Test round 4 Test round 5
Вы можете увидеть, как появляется эта переменная. Она помогает вам идентифицировать каждый отдельный объект в этом входном диапазоне. Чтобы указать несколько более сложные диапазоны чисел, вы можете использовать фигурные скобки. Чтобы указать тот же диапазон, что и ранее, вы можете изменить for $i in 1 2 3 4 5
на for $i in {1..5}
. Результат будет таким же. Вы также можете рассчитывать его по определенным числам. Это подсчет всех чисел на 3 от 0 до 27.
В сценариях чаще встречается выполнение определенной команды над набором файлов. Если бы я хотел использовать cat
для группы файлов в каталоге, я мог бы сделать это, изменив сценарий на следующий:
Это выведет на терминал выходные данные всех файлов в test-directory .
В моем случае результат будет выглядеть следующим образом.
Вы можете начать понимать, насколько мощным может быть цикл For. Это только поверхностное описание. Вы можете объединить несколько команд между do
и done
, а также использовать условные операторы, чтобы усложнить команды.
Не забудьте прочитать другие наши статьи о Bash, например Советы и рекомендации Bash для более эффективной работы в терминале и некоторые из Специальные символы Bash, которые вы должны знать .