command="./foo/s.sh && echo $VAR_T"
subprocess.check_output(command, shell=True)
s.sh 会
export VAR_T='foo'
但由于某种原因它对之后的 echo 命令不可见。
作为子进程调用无法设置父进程的环境,因此您需要获取脚本,这也意味着您需要定义您的shell。据我所知,实现这些目标的最简单方法是:
command="source ./foo/s.sh && echo $VAR_T"
subprocess.check_output(['bash', '-c',command])