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

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

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

Способ 1: цикл до

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

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

#! / Bin / Баш

п = 0

до [$ n -gt 20]

делать

эхо $ n

((П ++))

сделанный

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

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

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

Способ 2: для цикла

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

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

#! / Bin / Баш

unices = ‘GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwin HP-UX Minix’

для unix в $ unices

делать

echo $ unix

сделанный

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

Способ 3: Цикл while

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

Внутри этого файла вы захотите добавить строки:

#! / Bin / Баш

п = 0

в то время как [$ n -le 20]

делать

эхо $ n

((П ++))

сделанный

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

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

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

Ссылка на основную публикацию
Adblock
detector