ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Как объявить пустой массив в 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