使っています基準寸法python/2.7.2
モジュールとしてインストールしたシステムのパッケージを制御します。python_exe.py
単純な「ドライブ」スクリプトから呼び出す単純なPython実行可能ファイルがありますrunit.sh
。runit.sh
スクリプトは次のとおりです。
#!/bin/bash
module load python/2.7.2
arg1=myarg1
arg2=15
arg3=$5
/path/to/python_exe.py -a $arg1 -b $arg2 -c $arg3
ただし、実行すると、./runit.sh
「モジュール:コマンドが見つかりません」というメッセージが表示されます。ただし、これによりsource runit.sh
モジュールが正しくロードされます。なぜこれですか?
ベストアンサー1
module
コマンドがエイリアスまたはシェル関数であるため(パッケージの初期化「存在する
モジュール(1))。と言うと、インタラクティブシェルに直接コマンドを入力するのとsource runit.sh
同じです。module
しかし、あなたが言うとき./runit.sh
、あなたは新しい非対話型シェルを実行しています。非対話型シェルには通常、標準エイリアスとシェル機能が設定されていません。
モジュール(1)「モジュールパッケージと基準寸法シェル固有の初期化スクリプトがシェルに渡されると、コマンドは初期化されます。このスクリプトは基準寸法エイリアスまたはシェル関数でコマンド..."スクリプトでmodule
コマンドを実行する必要がある場合は、module
スクリプト内でコマンドとその初期化スクリプトを見つけます。source