TGViewer
Секреты сисадмина | DevOps, Linux, SRE Секреты сисадмина | DevOps, Linux, SRE @sysadmin_library · 25.5K subscribers
Post #5026 1.09K
Bash Массивы

Кроме обычных переменных, bash также различает массивы. Обратите внимание, что синтаксис для доступа к n-ному элементу отличается от синтаксиса, принятого в С.

х=() - Определение пустого массива
х[0]='а' - Присваивание элементов массива
х[1]='b' - Присваивание элементов массива
х[2]='с' - Присваивание элементов массива
х=('а' 'b' 'с') - Краткий вариант записи четырех предыдущих строк
echo ${x[l]} - Считывание элемента массива
echo ${x[@]} - Считывание всех элементов массива

Для программистов исключительно важны массивы ассоциативных элементов, которые стали поддерживаться в bash, начиная с версии 4.0. Не забудьте, что массив сначала требуется специально объявить как ассоциативный с помощью declare -A.

declare -Ay - Определение пустого массива ассоциативных элементов
y[abc]=123 - Присваивание элемента ассоциативного массива
y[efg]=xxx - Присваивание элемента ассоциативного массива
у=( [abc]=123 [efg]=xxx ) - Краткий вариант записи двух предыдущих строк
echo ${y[abc]} - Считывание одного элемента массива

Еще одно важное нововведение версии 4.0 заключается в том, что с помощью команды mapfile можно построчно преобразовать текстовый файл в элементы обычного массива:
mapfile z < текстовый_файл


#СекретыСисадмина
More from @sysadmin_library
  1. Sep 30, 2026Post #5030
  2. Sep 30, 2026document post
  3. Sep 30, 2026Переменные среды в Windows В данной статье показаны действия, с помощью которых можно узна…
  4. Sep 30, 2026Объектное хранилище в эпоху быстрых данных Объём данных, с которыми нужно работать, растёт…
  5. Sep 30, 2026Бесплатный урок: права доступа к файлам в Linux 🐧 Разбор того, как устроены права в Linux…
  6. Sep 29, 2026document post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →