Попробуйте выполнить экспорт
в объеме вызова Eval
:
eval export ENV_${env}=some_param
Это гарантирует, что оболочка расширяется env _ $ {Env}
, соответствующим образом к одному из ваших ожидаемых имен, прежде чем пытаться присвоить.
Вам также необходимо использовать EVAL
При попытке получить значение, хранящееся в вашей переменной:
eval echo \$ENV_$env
Обратите внимание на обратную косание - это предотвращает попытки оболочки расширить несуществующую переменную $ Env_
, до тех пор, пока он не расширил $ env
часть со встроенным EVAL
. Это результат этого расширения, которая в конечном итоге передается в echo
, что получает полное имя вашей динамической переменной и расширяет его, чтобы привести к тому, что вы хранятся в нем значением.
На основании этого ответа я считаю, что использование
varname="ENV_$env"
echo ${!varname}
может быть решением.