2017-02-09 3 views
2

이름에 변수가있는 변수에 값을 할당하려면 어떻게합니까?Bash에서 동적 변수 이름에 할당

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

위의 코드는 오류 -bash: var2_file=folder: command not found입니다. 이름에 다른 변수를 변수에 할당하는 방법을 알고 싶습니다. 강타의

버전은 "GNU bash는 버전 4.1.2"bash

+0

이것은 매우 특정 쉘입니다. 어떤 쉘을 사용하고 있습니까? Bash (오류 메시지에서)? 버전도 함께 입력하십시오. 의견으로 응답하지 마십시오. 질문 자체를 수정하십시오. –

+0

왜 필요한가요? 목표 달성을위한 더 나은 방법이있을 수 있습니다. – choroba

+0

99 %의 경우 연관 배열을 사용하는 것이 좋습니다. – jm666

답변

0

사용할 수 있습니다 declare :

declare var2_$var1="123" 
+1

'export'도 같은 방식으로 작동합니까? '세트'는 어떨까요? –

+0

답장을 보내 주셔서 감사합니다. 나는'수출','설정'및'선언'모두 잘 작동했습니다. 그러나 그것의 가치를 찾는 방법을 알아라. 'echo $ var2_ $ var1' 출력은 "123"이어야합니다. – vardhan

+0

네,이 접근 방식에 문제가 있습니다. 나는 대신에 배열을 사용하고 배열하는 것을 권장한다. – hek2mgl

0

어떻게 동적 이름을 누르고 검색을 위해 사용하는 또 다른 변수를 사용하는 방법에 대한 설정 후 값은?

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

불행하게도, 배쉬는 declare $new_var="123"을 허용하지 않습니다 -이 조금 더 예뻐 만든 것이라고.