繁体   English   中英

运行旨在通过subprocess.popen更改shell变量的脚本

[英]Running scripts whose purpose is to change shell variables with subprocess.popen

我有一系列脚本,正在使用subprocess.Popen自动执行python中的调用。 基本上,我叫脚本A,然后叫脚本B,然后叫脚本C,依此类推。

脚本A使用诸如set SOME_VARIABLE=SCRIPT_Aset PATH=%SCRIPT_A:/=\\;%PATH%命令设置了一堆本地shell变量。

然后,脚本B和C必须具有这种效果。 在UNIX中,您将使用“ source script_a.sh ”调用脚本A。 效果持续到当前命令窗口。 但是,subprocess.Popen有效地启动了一个新窗口(类似)。

显然subprocess.Popen不是我要执行的命令。 我该怎么办?

编辑我尝试解析文件(全部为“ set”语句),并将其作为字典传递给subprocess.Popen中的“ env”,但似乎并没有全部起作用。

您可以将Popen的env参数与包含变量的python字典一起使用,则无需运行仅设置变量的命令。

如果“脚本A”是由另一个进程生成的,则您将需要更改另一个进程,以便输出文件的格式可以将其源( import )到python脚本中。 或使用python编写解析器,可以将vars从“脚本A”中提取出来,从而在python脚本中进行设置。

如果您只想使用Python调用一系列批处理文件,则可以创建一个帮助程序批处理文件,该文件将像这样调用所有这些批处理文件

call scriptA;
call scriptB;
call scriptC;

并使用subprocess.Popen运行此帮助程序批处理文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM