URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7786
[ Назад ]

Исходное сообщение
"shell: динамическое имя переменной"

Отправлено GHopper , 20-Дек-08 16:04 
Здравствуйте!
Нужно обратиться к переменной, имя которой находится в другой переменной. Попытался сделать так:

#!/bin/sh

first_var='first_var'
second_var='second_var'
type='first'

echo ${${type}_var}


но получаю сообщение "${${...}: Bad substitution". Как нужно действовать в данной ситуации?

Содержание

Сообщения в этом обсуждении
"shell: динамическое имя переменной"
Отправлено Amator , 20-Дек-08 16:51 
>[оверквотинг удален]
>#!/bin/sh
>
>first_var='first_var'
>second_var='second_var'
>type='first'
>
>echo ${${type}_var}
>

>но получаю сообщение "${${...}: Bad substitution". Как нужно действовать в данной ситуации?
>

Если не ошибаюсь shell делать это не умеет - используйте bash.


"shell: динамическое имя переменной"
Отправлено BlackHat , 20-Дек-08 16:59 
#!/bin/sh

first_var='first_var'
second_var='second_var'
type='first'

eval new_var=\$${type}_var
echo $new_var
~
~


"shell: динамическое имя переменной"
Отправлено GHopper , 20-Дек-08 17:58 
>#!/bin/sh
>
>first_var='first_var'
>second_var='second_var'
>type='first'
>
>eval new_var=\$${type}_var
>echo $new_var
>~
>~

спасибо! то, что нужно.


"shell: динамическое имя переменной"
Отправлено phpcoder , 22-Дек-08 10:54 
eval ?



"shell: динамическое имя переменной"
Отправлено GHopper , 22-Дек-08 11:59 
>eval ?

ога )