Pythonで書かれたテストハーネスを実行しています。このテストハーネスを通してテストを実行する前に、変数をエクスポートした後にテストハーネスを呼び出すシェルスクリプトを通していくつかの環境変数をエクスポートしています。ハーネスが現れたら、変数が環境内にあるかどうかをチェックし、env変数の値に応じて操作を行います。終了時でもPythonスクリプトに保存される環境変数
しかし、テストが実行された後、次回から環境変数の値がクリアされないと考えられます。シェルスクリプトで設定されていなくても値を取得します。
明示的に設定されている場合、ハーネスは新しい値を選択しますが、次回クリアすると最初の実行で設定された値が再度取り込まれます。
すべてのテストの実行後に "del os.environ ['var']"コマンドを使用して変数を消去しようとしましたが、問題を解決できませんでした。誰もがなぜこれらの価値が保存されているのか知っていますか?
これらの変数は、 'env' unixコマンドのように設定されていません。テストハーネスの中には値が示されています。 env変数のいずれも、任意のテキストファイルに値を格納しません。
しかし、Pythonスクリプトを呼び出す前と戻った後にシェルスクリプトに 'env'コマンドを置くと、それらの変数が設定されていることは表示されません。 – writetonikhil
これは、env変数が親に設定されていないが、子で 'set'と見なされることを意味します。 – writetonikhil
あなたがサブシェルで行うすべては、その親に影響しません。 – kev