![디렉토리 변수의 이름을 전달하여 디렉토리를 변경하는 bash 함수를 작성할 수 있습니까?](https://rvso.com/image/1070934/%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%20%EB%B3%80%EC%88%98%EC%9D%98%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EC%A0%84%EB%8B%AC%ED%95%98%EC%97%AC%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%A5%BC%20%EB%B3%80%EA%B2%BD%ED%95%98%EB%8A%94%20bash%20%ED%95%A8%EC%88%98%EB%A5%BC%20%EC%9E%91%EC%84%B1%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
다음과 같이 이미 설정된 디렉터리 변수의 이름을 전달하여 작업 디렉터리를 변경하는 함수를 작성하고 싶습니다.
foo () {
cd $"$1"
}
그러나 예를 들어 foo link를 시도하면 -bash: cd:links: No such file ordirectory가 표시됩니다.
이것이 가능합니까?
답변1
변수 간접 참조를 사용할 수 있습니다.
foo () {
cd "${!1}"
}
dir=/mnt
foo dir
pwd # /mnt