Объявить массив, но не определить его?

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

foo[0]=abc 
foo[1]=def

. Я пытаюсь создать объявление, но не определять его, потому что он не имеет для определения сразу, на большинстве языков программирования это будет выглядеть примерно так

int bar[100];

Возможно ли это на языке сценариев оболочки?

1
задан 9 January 2014 в 19:40

2 ответа

В дополнение к вышеописанному мы также можем создать массив с помощью инструкции declare.

Оператор declare с параметром -a может использоваться для объявления переменной как массива, но это необязательно. Все переменные могут использоваться как массивы без явного определения. По сути, кажется, что в некотором смысле все переменные являются массивами, и это присвоение без индекса является тем же самым, что и назначение «[0]». Явное объявление массива выполняется с помощью встроенного объявления:

declare -a ARRAYNAME

Ассоциативные массивы создаются с использованием

declare -A name.

Атрибуты могут быть заданы для переменной массива с помощью объявления и только для чтения. Каждый атрибут применяется ко всем членам массива.

После того, как вы установили любую переменную массива, вы получите доступ к ней следующим образом:

${array_name[index]}
3
ответ дан 24 May 2018 в 13:12

Это на самом деле то же самое, что и C. В C мы можем взять массив по вашему усмотрению. Здесь мы можем взять пустой массив и затем поместить любые значения.

bar=()

Простой для цикла для принятия значения в этом массиве и печати:

bar=()
for ((i=0;i<10;i++));
do
    read bar[$i]  #Take Value in bar array
    echo bar[$i]
done

Надеюсь, это помогает.

0
ответ дан 24 May 2018 в 13:12
  • 1
    В чем проблема в ответе? Зачем голосовать? – Maniruzzaman Akash 23 October 2017 в 09:03

Другие вопросы по тегам:

Похожие вопросы: