Есть много руководств, в которых показано, как объявлять и определять массив
foo[0]=abc
foo[1]=def
. Я пытаюсь создать объявление, но не определять его, потому что он не имеет для определения сразу, на большинстве языков программирования это будет выглядеть примерно так
int bar[100];
Возможно ли это на языке сценариев оболочки?
В дополнение к вышеописанному мы также можем создать массив с помощью инструкции declare.
Оператор declare с параметром -a может использоваться для объявления переменной как массива, но это необязательно. Все переменные могут использоваться как массивы без явного определения. По сути, кажется, что в некотором смысле все переменные являются массивами, и это присвоение без индекса является тем же самым, что и назначение «[0]». Явное объявление массива выполняется с помощью встроенного объявления:
declare -a ARRAYNAME
Ассоциативные массивы создаются с использованием
declare -A name.
Атрибуты могут быть заданы для переменной массива с помощью объявления и только для чтения. Каждый атрибут применяется ко всем членам массива.
После того, как вы установили любую переменную массива, вы получите доступ к ней следующим образом:
${array_name[index]}
Это на самом деле то же самое, что и C. В C мы можем взять массив по вашему усмотрению. Здесь мы можем взять пустой массив и затем поместить любые значения.
bar=()
Простой для цикла для принятия значения в этом массиве и печати:
bar=()
for ((i=0;i<10;i++));
do
read bar[$i] #Take Value in bar array
echo bar[$i]
done
Надеюсь, это помогает.