2017-02-03 13 views
0

だから私はsubprocessの仕組みをよく知っていますが、奇妙な問題に遭遇しました。いくつかの環境変数のエクスポートを実行する必要があります。その理由は、プログラム(ブラックボックス)がサブシェルで動作するようなプログラムを実行するため、環境変数にアクセスすることはできませんが、すべてのファイルにアクセスできるからです。親に環境を渡すPythonシェルスクリプトの実行

私はsourceまたは.exportコマンドを持つファイルを作成したいと思います。ただし、サブプロセス内のファイルI sourceまたは.が存在する場合、その親プロセスには何の違いもありません。この場合、サブプロセスを作成せずにシェルコマンドを実行することができるsubprocess以外の関数が必要です(存在する場合)。別の問題は、サブプロセスにファイルを読み取るための適切な権限がないことです。

osで環境変数をコピーすることも、実際には不可能です。

subprocess以外のものはありますか?または、他にもいくつかの回避策がありますか?

答えて

1

IMHO最も簡単な解決策は、環境を初期化するためのセットアップスクリプト(名前はsetup.shとする)をソースにしてから、black_boxプログラムを呼び出す新しいシェルスクリプト(run_black_box.shと呼ぶ)を作成することです。ここで

run_black_box.shの可能コンテンツである:

#/bin/bash 
source setup.sh 
black_box 

ザ・あなたが実行するためsubprocessrun_black_box.shを渡すことができます。

関連する問題