0
私は、python-subprocess cmdでenv変数を利用しようとしています。コマンド内のpythonサブプロセスenv var
私は
myvar="myval"
echo $myvar
>>myval
のpython3みました:どのように私は私の出力が('myval/stuff\n', '')
ありがとうございあること、それを作ることができ
import os
import subprocess
from subprocess import PIPE
env_vars = dict(os.environ)
task_cmd = "echo $myvar/stuff"
sp = subprocess.Popen(task_cmd, shell=True, stdout=PIPE, stderr=PIPE, universal_newlines=True, env=env_vars)
sp.communicate()
out:
>> ('/stuff\n', '')
を!
を試してみて、私は子プロセスに利用できるようにそれを必要としません。私は実際にOSがPythonではなく代用を行うと考えていました。あなたの最初の答えは私が探していたものだと思います。あなたが正しいので、私は単純にPythonで書式設定を行うことができます。 – AdrianBR
'echo'と呼ばれる子プロセスはありません...あなたは基本的にはデフォルトのシェルを実行しています。これはPythonプロセスの子プロセスであり、変数を補間できるようにするには、渡す必要があります。 –
ああ、私は理解しています!私はシェルが渡されなかった場合、env変数を有効にしていないことに気付かなかった – AdrianBR