Расширение массива Bash с использованием расширения косвенной косвенности

Я пытаюсь расширить все значения в массиве, к которому я попадаю через косвенное расширение:

> my_array=(coconut banana)
> echo "${my_array[@]}" 
coconut banana
> my_array_name=my_array
> echo ${!my_array_name}
coconut
> echo "${!my_array_name[@]}"
0

Я ошибочно используюСписок ключей массива " в последней команде, потому что я нене знаете, как набрать правильную команду?

Я хотел бы получить:

coconut banana

возможно, не прибегая к некоторым уродливымeval взломать .. Пример одного отстойного взлома:

> echo \${$my_array_name[@]}
${my_array[@]}
> eval echo \${$my_array_name[@]}
coconut banana
Заметка

my_array может содержать значения с пробелами!

РЕДАКТИРОВАТЬ

В функции, которую я пишу, my_array_name устанавливается через "$ 1" поэтому я не могу использовать это буквально.

Похожий на:https://unix.stackexchange.com/questions/20171/indirect-return-of-all-elements-in-an-array но мне нужно избегать использованияeval чтобы защитить от неприятных эффектов, которые мог бы иметь сценарий, если бывзломан» как раз в нужное время...

Ответы на вопрос(2)

Ваш ответ на вопрос