Массивы в оболочке (Shell Arrays)

ShellShellBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь работать с массивами в программировании на shell. Массивы - это структуры данных, которые позволяют хранить несколько значений под одним именем, что упрощает организацию и обработку данных. Вы научитесь инициализировать массивы, добавлять в них элементы, получать доступ к элементам по их индексу и определять количество элементов в массиве. Эти знания являются фундаментальными для более продвинутого программирования на shell и задач по обработке данных.

Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 97.11%. Он получил 99.62% положительных отзывов от учащихся.

Создание нового файла шелл-скрипта

Начнем с создания нового файла шелл-скрипта, в котором мы напишем операции с массивами.

  1. Откройте терминал в WebIDE.

  2. Перейдите в директорию проекта:

    cd ~/project
  3. Создайте новый файл с именем arrays.sh с помощью команды touch:

    touch arrays.sh
  4. Откройте файл 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 сообщает оболочке подсчитать количество элементов.

Доступ к определенному элементу массива

Теперь давайте обратимся к определенному элементу нашего массива 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, которые мы создали ранее.

Запуск скрипта

Теперь, когда мы написали наш скрипт, пришло время запустить его и посмотреть результаты.

  1. В терминале убедитесь, что вы находитесь в правильной директории:

    cd ~/project
  2. Сделайте скрипт исполняемым:

    chmod +x arrays.sh
  3. Запустите скрипт:

    ./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 scripting). Вы практиковались в инициализации массивов, добавлении элементов в них, доступе к определенным элементам и определении количества элементов в массиве. Эти навыки являются важными для более сложных задач программирования в оболочке, особенно при работе со списками данных или когда вам нужно выполнять операции над несколькими элементами. Массивы предоставляют мощный способ организации и манипуляции данными в ваших скриптах оболочки, делая ваш код более эффективным и легким в управлении.

OSZAR »