Digital Studium

Блог о Linux, DevOps и облачных технологиях

🌐 English

Digital Studium Digital Studium Digital Studium

BASH: массивы и ассоциативные массивы


🧘 Автор: Константин Шуткин

Иногда возникает необходимость использовать в bash такие структуры данных, как списки (они же массивы) и ассоциативные массивы (он же хэш-таблицы). В данной статье приведены примеры того, как с ними работать.

1. Массивы

создание массива в bash делается просто:

sample_array=(foo bar bazz)

Чтобы добавить один или несколько новых элементов в конец массива, нужно использовать такой синтаксис:

sample_array+=(six seven)

Чтобы пройти по массиву циклом, нужно использовать такой синтаксис:

for i in ${sample_array[@]}
do
  echo $i
done

Чтобы получить элемент по индексу, используется такая конструкция:

echo ${sample_array[0]}
echo ${sample_array[3]}

# 0, 3 и т. п. - индексы элементов массива

Чтобы обрезать массив, используется такая конструкция:

sliced_array=${sample_array[@]:1} # выведет все элементы sample_array, начиная с 1-го
another_sliced_array=${sample_array[@]:1:5} # выведет элементы sample_array с 1-го по 5-й

2. Ассоциативные массивы

создание ассоциативного массива в bash делается так:

declare -A sample_hashmap=([one]=one [two]=two [three]=three [four]=four [five]=five)

Добавление новых элементов:

sample_hashmap[foo]=bar

Обход в цикле:

for key in ${sample_hashmap[@]}
do
  echo ${sample_hashmap[$key]}
done