PythonでBashの「ソース」をエミュレートする
次のようなスクリプトがあります。 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かどうかです。