Массивы 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