LINUX.ORG.RU

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

Исправление 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[@]}\"\)