Введение в массив в Unix

Массив - это структура данных, которая содержит группу элементов, типичных для одного и того же типа данных, таких как строка, целое число, число с плавающей запятой и т. Д. Структура данных массива также доступна в Unix.

  • Массив в Unix: это набор элементов, которые могут иметь или не иметь один и тот же тип данных.
  • Индекс: Массив начинается с нуля, что означает, что на элементы массива ссылается индекс, начинающийся с нуля.
  • Размер: нет максимального ограничения на размер массива

Синтаксис массива в Unix

Существуют разные способы формирования массива в сценариях оболочки. Давайте рассмотрим каждый из них в деталях:

1. Косвенное объявление: здесь значение присваивается определенному индексу на ходу. Пример которого упоминается ниже.

Синтаксис:

array_name(index) = value

2. Явное объявление: сначала объявляется массив, а затем ему присваиваются значения. Declare - это встроенное ключевое слово, а -a - опция чтения встроенного, которая позволяет читать и присваивать значения.

Синтаксис:

declare -a array_name

3. Составное назначение: здесь массив объявляется с несколькими значениями одновременно.

Синтаксис:

array_name = (value1 value2 value3 . . . valueN)

Или

array_name = ((0)=value1, (1)=value2, (2)=value3..)

Здесь индекс является необязательным, если индекс не указан, если значение присваивается последнему индексу плюс один

Как работает массив в Unix?

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

1. Создадим массив имен

2. Для доступа ко всем элементам массива используйте либо (*), либо (@)

Код:

echo $(first_name(*))
echo $(first_name(@))

Примечание: команда echo - это встроенная команда в Unix, которая используется для отображения текста или строки, передаваемой в качестве аргумента команды. Синтаксис 'echo' упомянут ниже.

Синтаксис:

echo (options) (arguments)

3. Получить доступ к любому конкретному элементу строки, используя ее индекс.

Код:

echo $(first_name(0))
echo $(first_name(1))
echo $(first_name(2))

Выход:

Примечание: () фигурные скобки используются для ссылки на содержимое массива.

4. Распечатать элементы в диапазоне. Синтаксис для того же выглядит следующим образом:

Синтаксис:

echo $array_name(which element):starting_index:count_element)

Давайте познакомимся с тем же.

Код:

echo $(first_name(@):0:2)
echo $(first_name(@):2:3)
echo $(first_name(0):1:2)

Выход:

@ - относится ко всем элементам массива
В команде echo $ (first_name (@): 0: 2)
@ рассмотрим все элементы массива. 0 - означает начать с этого конкретного индекса, а 2 отображает количество элементов от начальной точки
2 отображает количество элементов от начальной точки

В этой команде echo $ (first_name (0): 1: 2)
0 - рассмотреть 0- й элемент массива. 1 - начальная точка, а 2 - количество элементов от начальной точки.

5. Получить размер массива

Код:

echo $(#first_name(@))
or
echo $(#first_name(*))

Выход:


Примечание: # используется для определения длины определенного элемента массива.

6. Найти длину конкретного элемента массива

Код:

echo $(#first_name(0))

Выход :

7. Для получения индекса массива используйте приведенную ниже команду.

Код:

echo $(!first_name(@))

Выход:


Примечание: используется для получения индекса массива.

8. Для удаления массива в скрипте используется команда unset. Это встроенная команда для уничтожения массива или любого элемента массива

Синтаксис:

unset array_name

Код:

unset first_name

9. Удалить элемент по любому конкретному индексу

unset first_name(2)

Это удалит элемент с индексом 2.

10. Для поиска конкретного шаблона в массиве.

Код:

echo $(first_name(@)/*(aA)*/)

Выход:

Здесь first_name (@): относится ко всем элементам массива
/ pattern для поиска /: это шаблон для поиска в массиве или его элементе.
Он вернет 1, если совпадение найдено, и 0, если совпадение не найдено.

11. Искать определенный шаблон и заменять его в заданном массиве.

Код:

echo $(first_name(@)//a/A)

first_name (@): рассмотрим все элементы массива
// шаблон для поиска / замена строки /: поиск и замена строки

Выход:

first_name (2): поиск и замена операций, которые будут выполнены над элементом с индексом 2.

При выполнении операции поиска и замены в исходное значение массива не вносятся изменения. Он возвращает новое значение, которое может храниться в той же или разных переменных.

12. Для выполнения операции над элементами массива мы можем использовать циклы. Как и любой другой язык программирования, оболочка Bourne поддерживает два типа циклов, т.е. цикл for и цикл while. Давайте посмотрим на пример для перебора массива с использованием цикла for.

Код:

Arr = (1 2 3 4 5)
for i in “$(Arr(@))”
do
echo $i
done

Выход :

Точно так же вы можете перебирать массив, используя цикл while.

Имейте в виду, что в Unix доступны различные типы оболочек, такие как Bash, K shell, Bourne shell и т. Д. Shell - это не что иное, как интерфейс для систем Unix с различными наборами команд и функций. Таким образом, на основе различных типов оболочки существует различный синтаксис, связанный с массивом и его операциями, с небольшим изменением синтаксиса команд, которые обсуждались выше.

Bash Shell также разрешает операции с массивами над переменными без явного объявления переменных как массива. Давайте посмотрим на пример, чтобы лучше понять вышеприведенное утверждение.

Код:

String_variable = India is a democratic country
echo “$(string(0))”

Выход:

Вывод

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

Рекомендуемые статьи

Это руководство по массиву в Unix. Здесь мы обсуждаем синтаксис и работу массива в Unix, а также различные примеры и реализацию кода. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Прокси-сервер Linux
  2. Типы оболочек в Linux
  3. Создать пользователя в Linux
  4. Unix File System
  5. Руководство по For Loop в сценариях оболочки