디렉토리 변수의 이름을 전달하여 디렉토리를 변경하는 bash 함수를 작성할 수 있습니까?

디렉토리 변수의 이름을 전달하여 디렉토리를 변경하는 bash 함수를 작성할 수 있습니까?

다음과 같이 이미 설정된 디렉터리 변수의 이름을 전달하여 작업 디렉터리를 변경하는 함수를 작성하고 싶습니다.

foo () {
   cd $"$1"
}

그러나 예를 들어 foo link를 시도하면 -bash: cd:links: No such file ordirectory가 표시됩니다.

이것이 가능합니까?

답변1

변수 간접 참조를 사용할 수 있습니다.

foo () {
    cd "${!1}"
}

dir=/mnt
foo dir
pwd  # /mnt

관련 정보