BASH에서 변수를 계산하는 함수

BASH에서 변수를 계산하는 함수

변수 이름이 주어지면 해당 값을 인쇄하는 함수가 있습니까?

여러 번 변수 이름을 bash 함수에 전달하고 변수를 전달할 때 확장하는 대신 함수 내에서 확장되기를 원합니다. 물론 이렇게 하면 결국 변수 이름이 포함된 문자열을 만든 다음 exec를 실행해야 합니다. 출력을 에코하는 명령을 실행할 수 있다면 더 깨끗할 것입니다!

답변1

show_val() { echo "${!1}"; }
foo=bar
echo $(show_val foo)   # => bar
# works with arrays too
a=(zero one two)
echo $(show_val a[1])  # => one

bash 매뉴얼에 문서화되어 있습니다.여기

답변2

"exec 실행"에 대한 질문이 무엇을 의미하는지 잘 모르겠습니다. 아마도 평가를 의미하는 것 같습니다.

show_val() { 평가 에코 \$$1 }
부자 = 바
show_val foo

관련 정보