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 change /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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With