0

run前の実行の状態を保持するだけのコンテキストマネージャーを持つことは可能ですか? コード内:

編集:実用的な解決策ではなく、私が期待したもの

with sudo('. myapp'): #this runs a few things and sets many env variables
    run('echo $ENV1') # $ENV1 isn't set because the sudo command ran independently
    

複数のコマンドを実行しようとしていますが、各コマンド間で状態を維持したいですか?

プレフィックス コンテキスト マネージャーを使用してみましたが、shell_env コンテキスト マネージャーでは機能しません: このコードを実行すると

with shell_env(ENV1="TEST"):
    with prefix(". myapp"):
          run("echo $ENV2")

ENV設定してから、設定する必要があるアプリケーションを実行することを期待していましenv2たが、プレフィックスは shell_env の前に実行されますか?

4

2 に答える 2