subprocess.check_output() 内的导出对同一子进程内的其他命令不起作用

问题描述 投票:0回答:1
command="./foo/s.sh && echo $VAR_T"
subprocess.check_output(command, shell=True)

s.sh 会

export VAR_T='foo'
但由于某种原因它对之后的 echo 命令不可见。

python-3.x subprocess
1个回答
0
投票

作为子进程调用无法设置父进程的环境,因此您需要获取脚本,这也意味着您需要定义您的shell。据我所知,实现这些目标的最简单方法是:

command="source ./foo/s.sh && echo $VAR_T"
subprocess.check_output(['bash', '-c',command])
© www.soinside.com 2019 - 2024. All rights reserved.