Тема: Як замість імені масиву, підставити значення змінної ?

Привіт. Виникло таке питання, чи можна наприклад
замість

echo ${array[0]}

array, підставити значення якоїсь змінної ?
Пробував різні варіанти, та нічого не виходить, каже таке

bash: echo ${$str[0]}: bad substitution

2 Востаннє редагувалося Адріян Ігорович (27.02.2013 21:12:46)

Re: Як замість імені масиву, підставити значення змінної ?

Щойно придумав трохи "бидляцький" спосіб

array=(1 2 3) 
nameArray="array"
eArray="\${$nameArray[2]}"
eval echo $eArray

Виведе 3
Спосіб не аж, але вже щось...

3

Re: Як замість імені масиву, підставити значення змінної ?

#!/usr/bin/env bash
declare -a myArray
myarray=(some stupid sentence)
((n_elements=${#myarray[@]}, max_index=n_elements - 1))

sarray='myarray'

for ((i = 0; i <= max_index; i++)); do
  subst="$sarray[i]"
  echo "Element $i: '${!subst}'"
done

4

Re: Як замість імені масиву, підставити значення змінної ?

Тобто ви хочете витягнути наприклад елемент 0 з різних масивів?