使shell'source'文件使用相对路径

时间:2010-04-27 09:36:59

标签: shell

我有文件:myvars

MONO_PREFIX=/opt/mono
export MONO_PATH=$MONO_PREFIX/lib/mono/2.0

我通过调用来“使用”它:

source myvars

我想将/opt/mono更改为相对于myvars文件的位置,而不是绝对的。我怎么能这样做?

1 个答案:

答案 0 :(得分:7)

这应该在Bash中起作用:

MONO_PREFIX="${BASH_SOURCE[0]%/*}/subdir"

这应该适用于ksh:

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

这是针对zsh:

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

这些将指向源文件所在目录下的名为“subdir”的目录。