Оглавление:
Видео: Как использовать BASH для цикла
2024 Автор: Kayla Nelson | [email protected]. Последнее изменение: 2023-12-17 01:34
Один из самых простых приемов при создании сценариев 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, чтобы сохранить и выйти.
Следующий тип chmod + x до цикла в приглашении, чтобы сделать его исполняемым, а затем введите ./untilLoop запустить его. После запуска цикл будет продолжать выводить новые числа на ваш терминал, пока переменная n не станет равной 20.
Кстати, первая строка сообщает вашей среде, какую оболочку загружать при работе с этими скриптами. Некоторые программисты советуют использовать только #! / 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
Выполнено
Снова сохраните файл, используя либо метод Ctrl + O, а затем Ctrl + X в nano, либо метод Esc then: wq в vi перед вводом команды chmod + x forLoop чтобы сделать его исполняемым. Как только вы это сделаете, запустите его, набрав ./forLoop по запросу. Цикл for заставляет команду echo работать по очереди с каждым из элементов переменной unices. Вы можете еще раз заменить этот список любым аргументом и заменить echo любой командой для автоматизации длинных процессов.
Метод 3: цикл while
Начните редактировать третий файл с именем whileLoop, используя nano, vi или любые другие редакторы, которые вы хотите использовать. Если вы предпочитаете использовать графический текстовый редактор, то можете сделать это и с любым из этих проектов, если убедитесь, что файл помещен в тот же каталог, с которым вы работаете, из командной строки.
Внутри этого файла вам нужно добавить строки:
#! / bin / bash
п = 0
а [$ n -le 20]
делать
эхо $ n
((п ++))
Выполнено
Сохраните файл так же, как вы сохранили другие, а затем выйдите из текстового редактора. После выхода введите команду chmod + x whileLoop чтобы вы могли выполнить его, а затем запустить ./ whileLoop запустить его. Вы увидите тот же результат, что и сценарий untilLoop из первого метода, поскольку он считает от 0 до 20 более чем за доли секунды.
Это отличная демонстрация того факта, что есть несколько способов делать что-то, когда вы работаете с циклами таким образом. Хотя технически нет неправильного способа сделать это, вы, вероятно, встретите авторов сценариев, которые утверждают, что вам следует писать сценарии ближе к тому, как это делает язык программирования C, или, наоборот, другие могут посоветовать вам не делать этого. Честно говоря, верных способов решения проблемы, наверное, много.
Не стесняйтесь удалять свои сценарии, когда закончите с ними практиковаться.
Рекомендуемые:
Debian Jessie вступает в фазу завершения жизненного цикла
Если вы все еще используете Debian Jessie на сегодняшний день, возможно, вы не так защищены, как всего 24 часа назад. Debian GNU / Linux 8, более известный как
Лучшие приложения для отслеживания менструального цикла для Android
Извините, ребята, но я посвящу эту статью всем техническим женщинам. Не поймите меня неправильно. Если вы парень и все еще хотите прочитать мой пост, вы
AIO против пользовательского цикла: что выбрать?
Нельзя отрицать, что создание игрового ПК - это действительно потрясающий опыт, через который проходят многие геймеры. Однако то, что вам нужно
Исправлено: возникла проблема с исправлением цикла League Of Legends
Игроки League of Legends столкнулись с неожиданной ошибкой, из-за которой игра не так давно перешла в цикл исправлений. При открытии игры пользователи получали
Как исправить ошибку настройки цикла Roblox?
Цикл настройки Roblox часто возникает из-за чрезмерной защиты стороннего антивирусного пакета. В процессе установки приложение