Bashスクリプトで「モジュールローダ/1.1」を使用するには?

Bashスクリプトで「モジュールローダ/1.1」を使用するには?

CentOS 7.xでは、ユーザーがソフトウェアランチャーを「ロード」する正しい方法は、コマンドラインから実行することです。

module load program/1.1

Bashスクリプトを介してこのコマンドを実行する正しい方法は何ですか(たとえば、コンピューティングクラスタにジョブを送信するなど)。一人でできます。

source module load program/1.1

他にどのようなオプションがありますか?

ベストアンサー1

シェルスクリプトは、コマンドラインに入力したように実行されるコマンドのリストにすぎません。したがって、正しいアプローチは次のとおりです。

module load program/1.1

...コマンドラインで実行するのと同じです。コマンドが見つからない場合は、ソース$MODULESHOME/init/<shell>(setmoduleコマンド)を取得する必要があります。

このmoduleコマンドは、実際に現在のシェル環境を操作できるシェル機能です。

source何か別のことをします。デフォルトでは、ソーススクリプトをコピーしてスクリプトに貼り付けます。したがって、ソーススクリプトで関数を定義すると、その関数を呼び出すことができます。変数を設定すると、エクスポートしなくても表示できます。

対話型シェルで使用する複数のモジュールをロードするスクリプトを作成するには、次の手順を実行します。インタラクティブシェルからソースが必要ですあなたのスクリプト、しかしmodule。これモジュールのよくある質問これについて説明します。

おすすめ記事