Дополнительно
Добавление нового элемента в массив без указания индекса в Bash
Есть ли способ сделать что-то вроде PHP $array[] = 'foo';
в bash, не делая:
array[0] = 'foo'
array[1] = 'bar'
731
5
Да, есть:
Bash Reference Manual:
Как указывает Dumb Guy , важно отметить, начинается ли массив с нуля и является ли он последовательным. Поскольку вы можете выполнять задания и не устанавливать несмежные индексы,
$ {# array [@]}
не всегда является следующим элементом в конце массива.Вот как получить последний индекс:
Это показывает, как получить последний элемент массива. Вы часто увидите это:
Как видите, поскольку мы имеем дело с разреженным массивом, это не последний элемент. Это работает как на редких, так и на смежных массивах, хотя:
Если ваш массив всегда последовательный и начинается с 0, то вы можете сделать это:
Если вы случайно используете пробелы между знаком равенства:
Тогда вы получите ошибку, подобную следующей:
С индексированным массивом вы можете что-то вроде этого: