История изменений
Исправление vodz, (текущая версия) :
И тут сразу вспоминается перл.
Ну тут делается что надо: в $1 - имя нашей переменной, мы хотим («${!var[@]}») — это уже сам синтаксис, а не специзвращение, но для отложенной обработки экранируем спец символы. Можно и так:
local -a xkeys\=\(\"\${!$1[@]}\"\)
#либо
local -a 'ykeys=("${!'$1'[@]}")'
UPD: а парсеру башню то сносит... :)
Исправление vodz, :
И тут сразу вспоминается перл.
Ну тут делается что надо: в $1 - имя нашей переменной, мы хотим («${!var[@]}») — это уже сам синтаксис, а не специзвращение, но для отложенной обработки экранируем спец символы. Можно и так:
local -a xkeys\=\(\"\${!$1[@]}\"\)
#либо
local -a 'ykeys=("${!'$1'[@]}")'
Исправление vodz, :
И тут сразу вспоминается перл.
Ну тут делается что надо: в $1 - имя нашей переменной, мы хотим («${!var[@]}») — это уже сам синтаксис, а не специзвращение, но для отложенной обработки экранируем спец символы. Можно и так:
local -a ykeys\=\(\"\${!$1[@]}\"\)
Исправление vodz, :
И тут сразу вспоминается перл.
Ну тут делается что надо: в $1 - имя нашей переменной, мы хотим («${!var[@]}») — это уже сам синтаксис, а не специзвращение, но для отложенной обработки экранируем спец символы. Можно и так;
local -a ykeys\=\(\"\${!$1[@]}\"\)
Исходная версия vodz, :
И тут сразу вспоминается перл.
Ну тут делается что надо: в $1 - имя нашей переменной, мы хотим «${!var[@]}» — это уже сам синтаксис, а не специзвращение, но для отложенной обработки экранируем спец символы. Можно и так;
local -a ykeys\=\(\"\${!$1[@]}\"\)