Массивы Bash

Если вы когда-либо занимались программированием, вы, вероятно, уже знакомы с массивами.

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

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

my_array=("value 1" "value 2" "value 3" "value 4")

Чтобы получить доступ к элементам массива, вам необходимо ссылаться на них по их числовому индексу.

{notice} имейте в виду, что вам необходимо использовать фигурные скобки.

  • Получите доступ к одному элементу, это выведет:value 2

echo ${my_array[1]}
  • Это вернет последний элемент:value 4

echo ${my_array[-1]}
  • Как и в случае с аргументами командной строки, использование @вернет все аргументы в массиве следующим образом:value 1 value 2 value 3 value 4

echo ${my_array[@]}
  • Если добавить к массиву знак решетки ( #), будет выведено общее количество элементов в массиве, в нашем случае это 4:

echo ${#my_array[@]}

Обязательно проверьте это и попрактикуйтесь с разными значениями.

Давайте рассмотрим следующий пример нарезки строки в Bash:

#!/bin/bash

letters=( "A""B""C""D""E" ) 
echo ${letters[@]}

Эта команда распечатает все элементы массива.

Выход:

$ ABCDE

Давайте посмотрим еще несколько примеров:

  • Пример 1

#!/bin/bash

letters=( "A""B""C""D""E" ) 
b=${letters:0:2}
echo "${b}"

Эта команда напечатает массив от начального индекса от 0 до 2, где 2 является исключительным.

$ AB
  • Пример 2

#!/bin/bash

letters=( "A""B""C""D""E" ) 
b=${letters::5}
echo "${b}"

Эта команда будет печатать с базовым индексом от 0 до 5, где 5 является исключительным, а начальный индекс по умолчанию установлен на 0.

$ ABCDE
  • Пример 3

#!/bin/bash

letters=( "A""B""C""D""E" ) 
b=${letters:3}
echo "${b}"

Эта команда будет печатать от начального индекса 3 до конца массива включительно.

$ DE

Last updated