2010-04-27 58 views
3

我有一个文件:myvars使壳“源”文件使用相对路径

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

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

source myvars 

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

+0

很大程度上取决于'myvars'文件与/ opt的关系在哪里?你为什么认为你想这样做? – xenoterracide 2010-04-27 09:44:46

+0

myvar将会比我希望MONO_PREFIX指向的地方高一个目录。我想这样做是因为我想要在文件系统(不是系统安装)的不同位置放置单分发,同时仍然可以工作。 – 2010-04-27 10:23:55

回答

7

这应该猛砸工作:

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

这应该在KSH工作:

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

这是对的zsh:

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

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