I have the file: myvars
MONO_PREFIX=/opt/mono
export MONO_PATH=$MONO_PREFIX/lib/mono/2.0
I "use" it, by calling:
source myvars
I want to chang开发者_如何学编程e /opt/mono
to be relative to the location of the myvars file instead of being absolute. How could I do this?
This should work in Bash:
MONO_PREFIX="${BASH_SOURCE[0]%/*}/subdir"
This should work in ksh:
MONO_PREFIX="${.sh.file%/*}/subdir"
And this is for zsh:
MONO_PREFIX="${funcsourcetrace[1]%/*}/subdir"
These will point to a directory called "subdir" below the directory where the file being sourced resides.
精彩评论