2

私は非常に単純なモジュールファイルを持っています:

#%Module1.0#####################################################################
puts stderr "Loading personal environment"
proc ModulesHelp { } {
    puts stderr "\tLoads personal environment"
    puts stderr ""
}
setenv MYTEMPVAR sometext

そして、ここに私のコマンドラインがあります:

> env | grep MYTEMPVAR
> module load ~/wa/example_modulefile
Loading personal environment
> env | grep MYTEMPVAR
MYTEMPVAR=sometext
> module unload ~/wa/example_modulefile
> env | grep MYTEMPVAR
MYTEMPVAR=sometext

modulefileのマニュアル ページによると、unload module コマンドはすべての setenv を unsetenv に変更するはずでしたが、機能していないようです。ここで私が間違っているかもしれないことを誰かが知っていますか?

詳しくは:

> module --version
VERSION=3.2.6
DATE=2007-02-14

AUTOLOADPATH=undef
BASEPREFIX="/usr/share"
BEGINENV=99
CACHE_AVAIL=undef
DEF_COLLATE_BY_NUMBER=undef
DOT_EXT=""
EVAL_ALIAS=1
HAS_BOURNE_FUNCS=1
HAS_BOURNE_ALIAS=1
HAS_TCLXLIBS=undef
HAS_X11LIBS=1
LMSPLIT_SIZE=undef
MODULEPATH="/company/tech/tools/modules/sites/$SITE/Linux/:/company/tech/tools/modules/projects"
MODULES_INIT_DIR="/usr/share/Modules/init"
PREFIX="/usr/share/Modules"
TCL_VERSION="8.4"
TCL_PATCH_LEVEL="8.4.19"
TMP_DIR="/tmp"
USE_FREE=undef
VERSION_MAGIC=1
VERSIONPATH=undef
WANTS_VERSIONING=0
WITH_DEBUG_INFO=undef

Hello World

> env | grep SHELL
SHELL=/bin/tcsh

モジュールファイルに慣れていない人向け (あまり人気がないようです):

  • modulefile は、PATH、MANPATH、またはその他の環境変数にエントリを設定または追加する単純なコードです。
  • モジュールファイルは、さまざまなタイプのシェルの概念を隠します
  • modulefiles はツール コマンド言語 Tcl で記述され、モジュール ユーザー インターフェイスを介して modulecmd プログラムによって解釈されます。
4

2 に答える 2

0

これは明らかに意図したとおりに機能しています: http://sourceforge.net/tracker/?func=detail&aid=2384340&group_id=15538&atid=115538

module unload example_modulefileモジュールファイルへのフルパスを指定せずに実行することが期待されているようです。

于 2011-07-21T00:55:43.427 に答える