bash: вывести переменную Dynami c, используя имя Dynami c - PullRequest
1 голос
/ 20 февраля 2020

В течение, у меня есть следующее:

COUNT="1"  
GEOZONE[1]="EU"  
declare -A CLIENTS_"${GEOZONE[$COUNT]}"="client1 client2"

На данный момент, если я хотел бы напечатать $ {CLIENTS_EU} , это работает, но как напечатать это использование массива GEOZONE ?

Произошла неправильная замена при попытке:

~ $ echo ${CLIENTS_${GEOZONE[$COUNT]}}
bash: ${CLIENTS_${GEOZONE[$COUNT]}}: bad substitution

И я получил EU при попытке:

~ $ echo $CLIENTS_${GEOZONE[$COUNT]}
EU

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

Спасибо

1 Ответ

1 голос
/ 20 февраля 2020

Вам необходимо создать отдельную переменную, которая будет содержать имя составной переменной:

# ccomposte variable name
var=CLIENTS_"${GEOZONE[$COUNT]}"

# assign value
declare $var="client1 client2"

# print it
echo "${!var}"

client1 client2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...