2010-04-27 2 views
3

나는 파일이만드는 쉘 '소스'파일 사용 상대 경로

source myvars 

내가 상대 할 /opt/mono을 변경하려면 myvars 파일의 위치는 절대적이지 않습니다. 내가 어떻게 할 수 있니?

+0

이는 'myvars'파일이/opt와 관련하여 어디에 위치합니까? 왜 이걸하고 싶다고 생각하니? – xenoterracide

+0

myvar는 MONO_PREFIX가 가리 키기 원하는 곳보다 하나 높은 디렉토리입니다. 파일 시스템 (설치된 시스템이 아닌)의 다른 위치에 배치 될 수있는 일 분산을 원하면서 작업하고 싶기 때문에이 작업을 수행하려고합니다. –

답변

7

이 배쉬에서 작동합니다 :

MONO_PREFIX="${BASH_SOURCE[0]%/*}/subdir" 
이 KSH에서 작동합니다

:

MONO_PREFIX="${.sh.file%/*}/subdir" 

을 그리고 이것은 zsh을위한 것입니다 :

MONO_PREFIX="${funcsourcetrace[1]%/*}/subdir" 

이라는 디렉토리를 가리 킵니다 소스 파일이 상주하는 디렉토리 아래의 "subdir".