2017-02-09 2 views
2

Как присвоить значение переменной, которая имеет переменную в ее имени?Назначить имя динамической переменной в Bash

var1="file" 
var2_$var1="folder" 

Код, приведенный выше, дает мне ошибку -bash: var2_file=folder: command not found. Мне было любопытно узнать, как назначить переменной с другой переменной в ее имени.

версия Bash является «GNU Баш, версия 4.1.2»

+0

Это очень специфичная оболочка. Какую оболочку вы используете? Bash (из сообщения об ошибке)? Также перечислите версию. Не отвечайте в комментарии. Пожалуйста, отредактируйте сам вопрос. –

+0

Зачем вам это нужно? Там могут быть лучшие способы достижения вашей цели. – choroba

+0

В 99% случаях лучше использовать ассоциативные массивы. – jm666

ответ

0

С bash вы можете использовать declare:

declare var2_$var1="123" 
+1

Будет ли «экспорт» работать одинаково? Как насчет 'set'? –

+0

Спасибо за ваши ответы. Я попробовал 'export',' set' и 'declare' все работало нормально. Но знайте, как получить значение этого. !! 'echo $ var2_ $ var1' Выход из него должен быть« 123 » – vardhan

+0

Да, это проблема с этим подходом. Я рекомендую использовать и сопоставить массив вместо – hek2mgl

0

Как об использовании другой переменной, чтобы держать динамическое имя и использовать его для извлечения значение после настройки?

new_var=var2_$var1 
declare var2_$var1="123" 
echo "${!new_var}" # => 123 

К сожалению, Bash не позволяет declare $new_var="123" - что бы сделал это немного симпатичнее.

 Смежные вопросы

  • Нет связанных вопросов^_^