我有文件:myvars
MONO_PREFIX=/opt/mono
export MONO_PATH=$MONO_PREFIX/lib/mono/2.0
我通过调用来“使用”它:
source myvars
我想将/opt/mono
更改为相对于myvars文件的位置,而不是绝对的。我怎么能这样做?
答案 0 :(得分:7)
这应该在Bash中起作用:
MONO_PREFIX="${BASH_SOURCE[0]%/*}/subdir"
这应该适用于ksh:
MONO_PREFIX="${.sh.file%/*}/subdir"
这是针对zsh:
MONO_PREFIX="${funcsourcetrace[1]%/*}/subdir"
这些将指向源文件所在目录下的名为“subdir”的目录。