ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как объявить пустой массив в Bash?

Как объявить пустой массив в Bash?

Массивы представляют собой набор элементов данных одного типа, которые хранятся в смежных областях памяти. Или мы можем сказать, что это простейшая форма структуры данных, к элементам которой можно получить доступ напрямую, используя номер индекса, в котором они хранятся. В большинстве случаев возникает необходимость хранить в памяти данные одного типа, а не создавать несколько переменных для каждого типа данных. Мы можем просто использовать массив для хранения данных аналогичного типа в одном массиве. Прежде всего, каждый язык программирования поддерживает массивы так же, как и Linux. Мы также можем создать массив, используя различные команды и методы в Linux.

Используя массив bash, мы можем хранить данные в непрерывной памяти. Массив Bash хранит данные в виде индексации или также можно сказать, что это набор переменных. Но в типичном массиве мы можем хранить только элементы одного типа, но массив bash позволяет нам хранить все типы данных в отдельных массивах, например, хранить строки и числа.

 

Объявление массива в Bash

Существует два типа массивов bash: индексированный массив и ассоциативный массив. Индексированные массивы — это те массивы, в которых хранятся элементы, которым присваиваются числовые значения, начиная с «0» до «N» целых чисел. Второй представляет собой ассоциативный массив, основанный на парах ключ-значение. Или мы можем сказать, что он использует ключ для сопоставления значений в памяти.

Пример №1:

Прежде чем объявить массив, нам сначала нужно установить bash на нашу ОС. В нашем случае он уже установлен, поэтому нам не нужно устанавливать его снова. Теперь, просто проверив его версию, мы перейдем к нашей основной задаче — созданию массива в bash. Выполнив приведенную ниже команду, мы можем проверить версию bash, установленную в настоящее время в нашей системе.

andreyex@linux-VirtualBox:~$ bash - - version

 

Когда мы запустим приведенную выше команду, она отобразит сведения о версии bash. Если ваш bash не установлен, в терминале появится сообщение об ошибке. Поскольку у нас есть обновленная версия bash, она не будет обновляться. Вывод команды будет отображаться на терминале, как показано ниже.

GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)

Copyright (C) 2019 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.



 

Теперь давайте создадим массив, для которого мы запустим команду, указанную ниже:

andreyex@linux-VirtualBox:~$ my_array=()

 

В этой команде мы просто используем имя массива, назначая ему пустую скобку, что означает, что мы объявляем пустой массив. После запуска вышеуказанной команды он передаст нам терминал без отображения каких-либо результатов. В памяти будет присвоен индекс «my_array», который затем можно будет использовать для сохранения в нем значения. Теперь мы проверим, создан ли наш пустой массив или нет. Для проверки того, что массив создан, мы запустим команду, указанную ниже.

andreyex@linux-VirtualBox:~$ printf ${#my_array[*]}

 

В приведенной выше команде мы использовали оператор printf для отображения содержимого, которое хранится в созданном нами массиве. Поскольку мы хотим отобразить все значения, хранящиеся в массиве «my_array», мы передали значение звездочки «*» в скобках, которое используется для вывода всех значений массива.

0

andreyex@linux-VirtualBox:~$

 

Пример №2:

В этом примере мы попробуем другой метод объявления массива. В этом методе мы будем использовать ключевое слово «declare» вместе с флагом для резервирования памяти. Для создания массива мы просто запустим показанную ниже команду:

andreyex@linux-VirtualBox:~$ declare –a array_a=()

 

В приведенной выше команде ключевое слово declare используется для объявления переменной, когда мы передаем переменную «-a» вместе с объявлением, которое имеет тенденцию создавать и инициализировать массив. В этом мы создали массив с именем «array_a», которому мы еще не передали никакого значения. Просто назначив ему пустую скобку, мы просто запустим команду, она не будет отображать вывод в терминале. Просто запустив эту команду, мы можем объявить массив. Он резервирует место в памяти для будущего использования.

Теперь мы проверим, создан ли массив или нет. Для этого мы запустим следующую команду в терминале, чтобы получить вывод.

andreyex@linux-VirtualBox:~$ printf ${#array_a[@]}

 

Используя оператор printf для печати массива, для этого мы просто передали имя массива вместе со знаком #, который подразумевает количество значений, которые должны быть напечатаны из указанного массива: где «@» указывает, что все значения, которые хранятся в массиве должны отображаться. После выполнения приведенной выше команды мы получим вывод, как в примере ниже. Как и в нашем массиве, мы не сохранили никаких значений, поэтому отображалось нулевое значение «0».

0

andreyex@linux-VirtualBox:~$

 

Пример №3:

На этой иллюстрации мы попробуем другой метод объявления пустого массива, в котором мы просто создадим массив, не присваивая ему никакого значения. Просто запустив приведенную ниже команду, мы защитим индекс в памяти.

andreyex@linux-VirtualBox:~$ declare –a array

 

Мы объявили массив с именем «array». На этот раз мы ничего не присваивали массиву. После запуска команды она не будет отображать никаких результатов. Просто позвольте нам запустить дальнейшие команды, как показано ниже.

andreyex@linux-VirtualBox:~$ echo  ${#array[*]}

 

В этой команде мы просто передали массив в качестве аргумента. После запуска этой команды мы получим вывод, как показано ниже.

0

andreyex@linux-VirtualBox:~$

 

Пример №3:

В это примере мы попытаемся объявить массив, а затем вывести сообщение о том, пуст ли массив или нет. Для этого мы напишем команду запуска в терминале, указанном ниже:

andreyex@linux-VirtualBox:~$ declare –a arr

 

Используя приведенную выше команду, мы объявили массив с именем «arr». Теперь ячейка памяти для «arr» зарезервирована. Давайте создадим условие, которое будет выполнять вывод независимо от того, пуст файл или нет.

andreyex@linux-VirtualBox:~$ if ! (( ${#arr[*]} –eq 0)); then echo “you created an empty array”; fi

 

В этом мы использовали оператор if, в котором мы передали условие, что если массив «arr» равен 0, тогда он просто отобразит сообщение «you created an empty array».

You created an empty array

 

Заключение

Мы изучили создание массива в bash. Мы обсудили два типа массивов, которые можно создать в bash, и то, как мы можем зарезервировать место в памяти для массива. Затем, реализовав несколько методов, мы создали пустые массивы. Вы можете попробовать больше примеров для лучшего понимания.

Exit mobile version