참조 : BASH FAQ 항목 # 28 : "스크립트의 위치를 어떻게 결정합니까? 같은 위치에서 일부 구성 파일을 읽고 싶습니다."
어떤 솔루션도 100 % 작동하지 않을 것입니다.
일반적으로이 문제에는 해결책이 없다는 것을 인식하는 것이 중요합니다. 들어 보셨을 수있는 접근 방식과 아래에서 자세히 설명 할 접근 방식에는 결함이 있으며 특정 경우에만 작동합니다. 우선, 스크립트 위치에 의존하지 않고 문제를 완전히 피하십시오!
매우 재사용 가능한 도구 를 작성해야하는 경우 올바른 경로를 스크립트의 매개 변수로 사용하는 것이 가장 신뢰할 수있는 방법 입니다.
스크립트가 특정 셸에서만 실행되고 약간의 유연성 만 필요하다고 가정하면이 편집증을 완화 할 수 있습니다. 귀하의 옵션을 살펴 보는 것은 여전히 좋습니다. 특히 문제가되는 사람들이 사용하는 일반적인 패턴이 있습니다.
특히 FAQ에서는 매우 일반적으로 사용되는 $0
변수를 피할 것을 권장 합니다.
그 자체가 신뢰할 수 $0
없기 때문에 읽는 것은 결코 방탄이 될 $0
수 없습니다.
대안으로 $BASH_SOURCE
대신 사용할 수 있습니다 . 이 같은:
source "${BASH_SOURCE%/*}/act.conf.sh"
이 솔루션에도 몇 가지주의 사항이 있습니다. 다양한 솔루션 간의 장단점을 보려면 FAQ 페이지를 확인하십시오. 제대로 확장되지 않을 때 편리한 오류 조건이 발생하므로 작동하는 경우 cd
와 함께 권장 하는 것 같습니다 $BASH_SOURCE
.
readlink
.. 여기에 .... 그래서 게시 된 질문을 검색 할 키워드를 판단 할 수 없습니다