LINUX.ORG.RU

История изменений

Исправление intelfx, (текущая версия) :

Верно. У него же не ассоциативный массив, а обычный.

Пояснение ТСу: для обычных массивов внутри квадратных скобок разыменования тоже автоматические. В том числе вне $(( .. )).

declare -a array1
var=1
array1[var]=42
echo $(( array1[var] * 10 ))

но

declare -A array2
var=x
array2[$var]=42
echo $(( array2[$var] * 10 ))

Исправление intelfx, :

Верно. У него же не ассоциативный массив, а обычный.

Пояснение ТСу: внутри квадратных скобок для обычных массивов разыменования тоже автоматические. В том числе вне $(( .. )).

declare -a array1
var=1
array1[var]=42
echo $(( array1[var] * 10 ))

но

declare -A array2
var=x
array2[$var]=42
echo $(( array2[$var] * 10 ))

Исправление intelfx, :

Верно. У него же не ассоциативный массив, а обычный.

Пояснение ТСу: внутри квадратных скобок для обычных массивов разыменования тоже автоматические.

declare -a array1
array1[1]=42
var=1
echo $(( array1[var] * 10 ))

но

declare -A array2
array2[x]=42
var=x
echo $(( array2[$var] * 10 ))

Исправление intelfx, :

Верно. У него же не ассоциативный массив, а обычный.

Пояснение ТСу: внутри квадратных скобок для обычных массивов разыменования тоже автоматические.

declare -a array1
var=1
array1[var]=42
echo $(( array1[var] * 10 ))

но

declare -A array2
var=x
array2[x]=42
echo $(( array2[$var] * 10 ))

Исправление intelfx, :

Верно. У него же не ассоциативный массив, а обычный.

Исходная версия intelfx, :

Точно, у него же не ассоциативный массив, а обычный.