bash 스크립트가있는 몇 개의 디렉토리와 각 머신의 다른 디렉토리에 여러 머신에 배포되는 지원 파일로 구성된 유틸리티가 있습니다. 스크립트는 자신과 관련된 경로를 참조 할 수 있어야하므로 현재 실행중인 파일의 경로를 얻을 수 있어야합니다.
dirname $0
스크립트를 직접 호출 할 때 완벽하게 작동 하는 관용구를 알고 있습니다. 불행히도 완전히 다른 디렉토리에서 이러한 스크립트에 대한 심볼릭 링크를 만들고 여전히 상대적인 경로 지정 논리 작업을 수행하고자합니다.
전체 드리프트 구조의 예는 다음과 같습니다.
/
|-usr/local/lib
| |-foo
| | |-bin
| | | |-script.sh
| | |-res
| | | |-resource_file.txt
|-home/mike/bin
| |-link_to_script (symlink to /usr/local/lib/foo/bin/script.sh)
어떻게 안정적으로 참조 할 수 있습니다 /usr/local/lib/foo/res/resource_file.txt
에서 script.sh
가 호출되었는지 여부 /usr/local/lib/foo/bin/script.sh
나 ~mike/bin/link_to_script
?