Работа с массивами в Bash
Храните и обрабатывайте списки значений. Научитесь объявлять массивы, получать доступ к элементам и перебирать их, узнавать длину массива и использовать ассоциативные массивы как отображения «ключ — значение».
«Работа с массивами в Bash» — бесплатный урок Linux Command Line & Bash Scripting Mastery на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Command Line & Bash Scripting Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Command Line & Bash Scripting Mastery содержит 4 уроков всего.
Зачем нужны массивы
Обычная переменная хранит одно значение. Массив хранит много значений — это идеально подходит для списков файлов, имён или аргументов, по которым нужно пройти в сценарии.
Объявление массива
Создайте индексированный массив, перечислив значения в круглых скобках через пробел.
fruits=(apple banana cherry)Доступ к элементам
Обращайтесь к элементам по индексу с помощью ${array[i]}, начиная с 0. Фигурные скобки обязательны.
echo "${fruits[0]}" # apple
echo "${fruits[2]}" # cherryВсе элементы сразу
Используйте ${array[@]}, чтобы получить все элементы. Именно этот вариант используется в цикле.
echo "${fruits[@]}" # apple banana cherryДлина массива
Получите количество элементов с помощью ${#array[@]}.
echo "${#fruits[@]}" # 3Перебор с циклом for
Перебирайте массив, раскрыв все его элементы. Кавычки вокруг "${arr[@]}" сохраняют значения, содержащие пробелы.
for f in "${fruits[@]}"; do
echo "Fruit: $f"
doneДобавление элементов
Добавляйте элементы в конец массива с помощью +=. Также можно напрямую присвоить значение определённому индексу.
fruits+=(mango)
fruits[10]="kiwi"Удаление элементов
unset удаляет элемент по индексу. Обратите внимание: вместо перенумерации индексов в массиве останется пробел.
unset 'fruits[1]' # removes bananaПолучение среза массива
Извлеките диапазон элементов с помощью ${array[@]:start:count}.
echo "${fruits[@]:0:2}" # first twoАссоциативные массивы
Bash 4+ поддерживает отображения «ключ—значение». Объявите такое отображение с помощью declare -A, а затем обращайтесь к элементам по строковым ключам.
declare -A ages
ages[alice]=30
ages[bob]=25
echo "${ages[alice]}" # 30Перебор ключей и значений
Перебирайте ключи с помощью ${!array[@]} и получайте каждое значение по ключу.
for name in "${!ages[@]}"; do
echo "$name is ${ages[$name]}"
doneБыстрая проверка
Проверьте своё понимание.
Итоги
Вы изучили массивы Bash: объявление с помощью (), обращение по индексу с помощью ${arr[i]}, раскрытие всех элементов с помощью ${arr[@]}, подсчёт с помощью ${#arr[@]}, перебор, добавление через +=, получение среза и использование declare -A для ассоциативных отображений «ключ—значение».
Часто задаваемые вопросы
Урок «Работа с массивами в Bash» бесплатный?
Да — полный текст урока «Работа с массивами в Bash» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Command Line & Bash Scripting Mastery, подпишись на CoddyKit PRO. Курс Linux Command Line & Bash Scripting Mastery содержит 4 уроков всего.
Чему я научусь в уроке «Работа с массивами в Bash»?
Храните и обрабатывайте списки значений. Научитесь объявлять массивы, получать доступ к элементам и перебирать их, узнавать длину массива и использовать ассоциативные массивы как отображения «ключ —… Ты практикуешь Linux Command Line & Bash Scripting Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Linux Command Line & Bash Scripting Mastery?
Предыдущий опыт не требуется. Linux Command Line & Bash Scripting Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Работа с массивами в Bash»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Linux Command Line & Bash Scripting Mastery?
Да. Каждый урок Linux Command Line & Bash Scripting Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Первый скрипт Bash и шебанг
- Переменные и пользовательский ввод
- Условные конструкции (if, else, elif)
- Работа с массивами в Bash