次のようなスクリプトがあります。
export foo=/tmp/foo
export bar=/tmp/bar
ビルドするたびに、 'source init_env'(ここでinit_envは上記のスクリプトです)を実行して、いくつかの変数を設定します。
Pythonで同じことを行うために、このコードを実行しました。
reg = re.compile('export (?P<name>\w+)(\=(?P<value>.+))*')
for line in open(file):
m = reg.match(line)
if m:
name = m.group('name')
value = ''
if m.group('value'):
value = m.group('value')
os.putenv(name, value)
しかし、誰かが次のような行をinit_env
ファイルに追加すると便利だと判断しました。
export PATH="/foo/bar:/bar/foo:$PATH"
明らかに私のPythonスクリプトはバラバラになりました。この行を処理するようにPythonスクリプトを変更することもできますが、後で誰かがinit_env
ファイルで使用する新しい機能を思いついたときに中断します。
問題は、Bashコマンドを実行してそれを変更する簡単な方法があるos.environ
かどうかです。