Logo ru.nowadaytechnol.com

Как использовать BASH для цикла

Оглавление:

Как использовать BASH для цикла
Как использовать BASH для цикла

Видео: Как использовать BASH для цикла

Видео: Как использовать BASH для цикла
Видео: Цикл for в терминале bash 2024, Марш
Anonim

Один из самых простых приемов при создании сценариев bash заключается в создании цикла, позволяющего автоматически выполнять определенную задачу несколько раз. В конце концов, цикл достигнет заданного тестового состояния и внезапно прекратит выполнение. Подобные циклы отлично работают в bash в Linux и macOS, а также в оболочке bash в Windows 10 и даже в различных оболочках FreeBSD. Естественно, вы можете написать любую команду, которую вы предпочитаете, в любом цикле и поддерживать выполнение любого процесса в любое время, какое захотите. Хотя мы напишем несколько очень простых циклов, вы можете использовать эти навыки для создания любых скриптов, которые вам нравятся.

Есть много способов начать писать скрипт, но для этого обсуждения мы предположим, что вы открыли командную строку, выполнив поиск терминала в Dash, щелкнув его в меню KDE, MATE, LX или Whisker или удерживая одновременно нажмите Ctrl, Alt и T. Хотя мы будем обсуждать vi / vim и nano как редакторы, вопрос о том, какой редактор использовать, является довольно личным, и вы можете работать с тем, с чем вам удобно.

Метод 1: цикл до

Возможно, самый простой цикл в bash - это цикл до. Он будет выполнять команды до тех пор, пока установленное вами условие тестирования не станет истинным. Предположим, вы использовали nano или vi для открытия несуществующего файла с именем until.sh и готовы вставить в него новый текст. Чтобы упростить задачу, мы просто сделаем в вашем терминале что-нибудь, что будет считать до 20.

Начните с ввода следующего:

#! / bin / bash

п = 0

до [$ n -gt 20]

делать

эхо $ n

((п ++))

Выполнено

Если вы используете nano, сохраните его, удерживая Ctrl, а затем нажав O и, наконец, X, чтобы выйти. Пользователи vi захотят нажать escape, затем введите: wq, чтобы сохранить и выйти.

Image
Image

Следующий тип chmod + x до цикла в приглашении, чтобы сделать его исполняемым, а затем введите ./untilLoop запустить его. После запуска цикл будет продолжать выводить новые числа на ваш терминал, пока переменная n не станет равной 20.

Image
Image

Кстати, первая строка сообщает вашей среде, какую оболочку загружать при работе с этими скриптами. Некоторые программисты советуют использовать только #! / Bin / sh, чтобы убедиться, что ваш сценарий соответствует определенным стандартам POSIX, но эти простые сценарии не должны вызывать проблем при работе в подавляющем большинстве современных систем.

Метод 2: цикл for

Цикл for просматривает каждый элемент в данном списке, а затем выполняет заданный набор команд в этом списке. Мы сделаем такую, которая выводит названия некоторых операционных систем, но имейте в виду, что вы можете делать с ней что угодно, если хотите.

Введите либо нано forLoop или же vi forLoop в командной строке и начните вводить следующий сценарий. Пользователи vi должны будут войти в режим вставки, прежде чем они это сделают.

#! / bin / bash

unices = ’GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndianDarwin HP-UX Minix’

для unix в $ unices

делать

эхо $ unix

Выполнено

Image
Image

Снова сохраните файл, используя либо метод Ctrl + O, а затем Ctrl + X в nano, либо метод Esc then: wq в vi перед вводом команды chmod + x forLoop чтобы сделать его исполняемым. Как только вы это сделаете, запустите его, набрав ./forLoop по запросу. Цикл for заставляет команду echo работать по очереди с каждым из элементов переменной unices. Вы можете еще раз заменить этот список любым аргументом и заменить echo любой командой для автоматизации длинных процессов.

Image
Image

Метод 3: цикл while

Начните редактировать третий файл с именем whileLoop, используя nano, vi или любые другие редакторы, которые вы хотите использовать. Если вы предпочитаете использовать графический текстовый редактор, то можете сделать это и с любым из этих проектов, если убедитесь, что файл помещен в тот же каталог, с которым вы работаете, из командной строки.

Внутри этого файла вам нужно добавить строки:

#! / bin / bash

п = 0

а [$ n -le 20]

делать

эхо $ n

((п ++))

Выполнено

Image
Image

Сохраните файл так же, как вы сохранили другие, а затем выйдите из текстового редактора. После выхода введите команду chmod + x whileLoop чтобы вы могли выполнить его, а затем запустить ./ whileLoop запустить его. Вы увидите тот же результат, что и сценарий untilLoop из первого метода, поскольку он считает от 0 до 20 более чем за доли секунды.

Image
Image

Это отличная демонстрация того факта, что есть несколько способов делать что-то, когда вы работаете с циклами таким образом. Хотя технически нет неправильного способа сделать это, вы, вероятно, встретите авторов сценариев, которые утверждают, что вам следует писать сценарии ближе к тому, как это делает язык программирования C, или, наоборот, другие могут посоветовать вам не делать этого. Честно говоря, верных способов решения проблемы, наверное, много.

Не стесняйтесь удалять свои сценарии, когда закончите с ними практиковаться.

Рекомендуемые: