Введение
В этой практической работе вы научитесь работать с массивами в программировании на Shell. Массивы — это структуры данных, которые позволяют хранить несколько значений под одним именем, что упрощает организацию и обработку информации. Вы узнаете, как инициализировать массивы, добавлять в них элементы, обращаться к элементам по их индексу и определять общее количество элементов. Эти знания являются фундаментальными для написания сложных скриптов и выполнения задач по обработке данных.
Создание нового файла скрипта
Начнем с создания нового файла Shell-скрипта, в котором мы будем прописывать операции с массивами.
Откройте терминал в WebIDE.
Перейдите в каталог проекта:
cd ~/projectСоздайте новый файл с именем
arrays.sh, используя команду touch:touch arrays.shОткройте файл
arrays.shв редакторе WebIDE.
Инициализация пустых массивов
Теперь, когда файл скрипта готов, давайте начнем с инициализации трех пустых массивов.
Добавьте следующий код в файл arrays.sh:
#!/bin/bash
## Initialize empty arrays
NUMBERS=()
STRINGS=()
NAMES=()
Разберем, что делает этот код:
- Первая строка
#!/bin/bashназывается шебанг (shebang). Она указывает системе, что данный скрипт должен выполняться интерпретатором Bash. - Мы создаем три пустых массива:
NUMBERS,STRINGSиNAMES. - Синтаксис
()используется для инициализации пустого массива.
Добавление элементов в массивы
Теперь, когда у нас есть пустые массивы, давайте наполним их данными.
Добавьте следующий код в файл arrays.sh ниже строк инициализации:
## Add elements to NUMBERS array
NUMBERS+=(1)
NUMBERS+=(2)
NUMBERS+=(3)
## Add elements to STRINGS array
STRINGS+=("hello")
STRINGS+=("world")
## Add elements to NAMES array
NAMES+=("John")
NAMES+=("Eric")
NAMES+=("Jessica")
Вот как работает этот код:
- Мы используем оператор
+=для добавления (дописывания) элементов в конец массива. - В массив
NUMBERSмы добавляем целые числа 1, 2 и 3. - В массив
STRINGSмы добавляем слова "hello" и "world". - В массив
NAMESмы добавляем три имени: "John", "Eric" и "Jessica". - Обратите внимание, что строковые элементы заключаются в кавычки, в то время как числам они не требуются.
Определение количества элементов в массиве
Одной из распространенных операций является выяснение количества элементов, содержащихся в массиве. Давайте сделаем это для массива NAMES.
Добавьте следующий код в файл arrays.sh:
## Get the number of elements in the NAMES array
NumberOfNames=${#NAMES[@]}
Эта строка выполняет следующие действия:
- Конструкция
${#NAMES[@]}возвращает общее количество элементов в массивеNAMES. - Мы сохраняем это значение в переменную с именем
NumberOfNames. - Символ
@внутри скобок указывает на все элементы массива. - Символ
#перед именем массиваNAMESприказывает оболочке (shell) подсчитать количество элементов.
Доступ к конкретному элементу массива
Теперь давайте обратимся к конкретному элементу в массиве NAMES. Мы извлечем второе имя.
Добавьте этот код в файл arrays.sh:
## Access the second name in the NAMES array
second_name=${NAMES[1]}
Разбор кода:
- Мы обращаемся ко второму элементу массива
NAMESс помощью${NAMES[1]}. - Помните, что индексация массивов в Bash начинается с 0, поэтому индекс
[1]соответствует второму элементу. - Мы сохраняем полученное значение в переменную
second_name.
Вывод массивов и переменных
В завершение добавим код для вывода наших массивов и переменных на экран, чтобы увидеть результаты работы.
Добавьте следующий код в конец файла arrays.sh:
## Print the arrays and variables
echo "NUMBERS array: ${NUMBERS[@]}"
echo "STRINGS array: ${STRINGS[@]}"
echo "The number of names listed in the NAMES array: $NumberOfNames"
echo "The second name on the NAMES list is: $second_name"
Этот блок кода делает следующее:
- Мы используем команду
echoдля вывода строк в консоль. ${NUMBERS[@]}и${STRINGS[@]}выводят все элементы соответствующих массивов.- Мы выводим значения переменных
NumberOfNamesиsecond_name, которые создали ранее.
Запуск скрипта
Теперь, когда скрипт написан, пришло время запустить его и проверить результаты.
В терминале убедитесь, что вы находитесь в нужном каталоге:
cd ~/projectСделайте файл скрипта исполняемым:
chmod +x arrays.shЗапустите скрипт:
./arrays.sh
Вы должны увидеть вывод, похожий на этот:
NUMBERS array: 1 2 3
STRINGS array: hello world
The number of names listed in the NAMES array: 3
The second name on the NAMES list is: Eric
Этот результат подтверждает, что наши операции с массивами прошли успешно:
- Массив
NUMBERSсодержит 1, 2 и 3. - Массив
STRINGSсодержит "hello" и "world". - Мы правильно насчитали 3 имени в массиве
NAMES. - Мы успешно извлекли "Eric" как второе имя в списке.
Резюме
В ходе этой практической работы вы изучили основы работы с массивами в Shell-скриптах. Вы попрактиковались в инициализации массивов, добавлении элементов, доступе к конкретным значениям и определении размера массива. Эти навыки критически важны для решения продвинутых задач автоматизации, особенно когда требуется обрабатывать списки данных или выполнять операции над множеством объектов одновременно. Массивы предоставляют мощный способ организации и манипулирования данными, делая ваш код более эффективным и структурированным.



