在modulefile中使用bash变量
我正在尝试编写一系列在modulefile中使用bash变量,bash,environment-variables,modulefile,Bash,Environment Variables,Modulefile,我正在尝试编写一系列modulefile,可用于在集群设置中加载每个用户帐户下安装的软件。由于该软件是在类似的路径下每人安装的,直到用户名更改为止,所以我尝试在modulefile中动态设置基本路径值 例如,如果我可以使用绝对路径,那么我将设置一个BASEPATH,如下所示: #%Module1.0##################################################################### ## ##libevent 2.1.11 设置应用程序lib
modulefile
,可用于在集群设置中加载每个用户帐户下安装的软件。由于该软件是在类似的路径下每人安装的,直到用户名更改为止,所以我尝试在modulefile中动态设置基本路径值
例如,如果我可以使用绝对路径,那么我将设置一个BASEPATH
,如下所示:
#%Module1.0#####################################################################
##
##libevent 2.1.11
设置应用程序libevent
设置版本2.1.11
模块whatis“加载必要的“$app-$version”库路径”
设置BASEPATH/usr/local/packages/dev/$app/$version
前置路径LD_库_路径$BASEPATH/lib
前置路径LD_运行_路径$BASEPATH/lib
前置路径--delim“LDFLAGS”-L$BASEPATH/lib
前置路径--delim“CPPFLAGS”-I$BASEPATH/include
前置路径--delim“CFLAGS”-I$BASEPATH/include
但是,在我的例子中,我需要BASEPATH
变量为:
set BASEPATH/home/${USER}/software/$app/$version
其中,$USER
将扩展到当前用户名
不幸的是,在加载模块时,我收到:
libevent/2.1.11(15):错误:102:Tcl命令执行失败:
设置BASEPATH/home/${USER}/software/$app/$version
结果表明,通过使用TCL语言的
因此,在我的情况下,我将使用:
set BASEPATH/home/$::env(用户)/软件/$app/$version
或者,相当于
set BASEPATH$::env(HOME)/software/$app/$version