パス/コードプロジェクトを切り替えています。各場所に異なるモジュールがあります。これを処理するために使用する項目を変更する設定スクリプトがあります。これはツール「モジュール」によって処理されます。
メモ: modules
環境を管理するためのパッケージで、さまざまなアプリケーションが存在または$PATH
存在しないように環境を再構成できます。
問題は、モジュールパスが更新されるたびに新しいエントリがファイルに追加されることです。~/.modulesbeginenv
#!/user/bin/env tcsh
module unuse $path1
module use $path2
module add project_module
~/.modulebeginenv
この簡単な例では、各通話に 2 つの回線を追加します。最初はMODULEPATH='paths'
ありませんし、$path1
次にMODULEPATH='paths'
はあります$path2
。
変更が更新ではなく追加であることが奇妙に見えます。この問題を制御できる構成やその他の回避策はありますか?
答え1
使い方を見ると、サブコマンドで期待できる動作に似ていますuse
。
module use [-a |--append] directory [directory...]
$MODULEPATH
デフォルトでは、このサブコマンドは環境変数にディレクトリを追加します。-a
または、パラメータを使用すると、ディレクトリが--append
に追加されます$MODULEPATH
。
サブコマンドを使用すると、指定したすべてのunuse
パスが削除されます。
module unuse directory [directory...]
$MODULEPATH 環境変数からディレクトリを削除します。
変数を完全に上書きするには、いつでもこのsetenv
コマンドを使用できます。
setenv variable value
環境変数を値に設定します。この
setenv
コマンドはプロセス環境も変更します。 Tclのenv連想配列を使用する参照は、setenv
このコマンドを使用して変更された内容を参照します。 Tclのenv連想配列を使用して行った変更は、setenvコマンドのようにユーザーの環境変数を変更しません。このように変更された環境は、モジュール検証プロセスにのみ影響を与えます。このコマンドは、setenv
コマンドの前に環境を変更するのにも役立ちます。モジュールファイルがアンロードされると、環境変数が定義されている場合はモジュールファイルがロードされたときに上書きされます。その後のアンインストールでは、環境変数が設定解除されます。以前の値は復元できません。 (明示的に処理しない限り...以下を参照してください。)…exec
system
setenv
unsetenv