これは私がやりたいことです。.shスクリプトから環境変数を取得し、Pythonスクリプトで使用する
エクスポートされる環境変数を含むA.shスクリプトがあります(たとえば、export AEnv==1234
)。
その後、私はA.shを呼び出しB.shている:そして、私はB.sh.を実行.BATスクリプトを
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$SCRIPT_DIR/.."
. ${SCRIPT_DIR}/A.sh
を持っていますその下に私はPythonスクリプトを実行します。私のPythonスクリプトでは、環境変数AEnv
を探しています。しかし、それは私に次のエラー与える:B.shはもう、したがって、障害が存在しない環境変数を終えたときに私は理解してきたように、私はos.environ['AEnv']
を使用しています
File "C:\Python27\lib\os.py", line 425, in __getitem__
return self.data[key.upper()]
KeyError: 'AEnv'
することです。
私には何が欠けていますか?
のいずれかにPythonを呼び出してください。簡単な方法でスクリプトを実行すると新しいシェルが作成され、したがってenv変数は保持されません。スクリプトの呼び出し方法を確認できるようにコードを投稿してください。また、 'バット'の中で 'sh'をどのくらい正確に実行していますか? – nir0s
@ nir0sコードを投稿できません。私のバットで.shファイルを呼び出す方法は、B.shを書くことです。 – user535081
Pythonスクリプトも.batファイルによって起動されていますか? A.shとB.shだけでは、一時プロパティファイルに環境を書いてPythonで読むことを提案することができます。それとも、私たちに教えてくれなかったスクリプトがもうありますか? –