변수 이름이 주어지면 해당 값을 인쇄하는 함수가 있습니까?
여러 번 변수 이름을 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