我需要在python脚本上运行一个大型的构建脚本(bash命令)。我将它作为一个大字符串接收,并且每行都被\ n分隔。所以,我需要分别执行每一行。我试着用subprocess.Popen()来执行它们。但问题是:在每行之后,进程终止并且所有环境变量都丢失。在python中执行相同进程中的bash命令
问题不在于等命令完成执行另一个命令,我需要在同一个shell上执行所有命令。
到目前为止,我发现的唯一解决方案是将所有这些命令保存为sh文件(例如build.sh)并在python上执行它。
我不想使用这个approuch,因为我想对每次执行有更多的控制权。
有什么办法可以在同一个进程上一个接一个地执行这些命令吗?
任何其他解决方案也不错。
的可能的复制[蟒蛇等待shell命令来完成(http://stackoverflow.com/questions/16196712/python-to-wait-for-shell-command-to-complete) – vv01f
你可以用'subprocess.Popen()'启动一个shell,然后将命令提供给它的标准输入。 – jasonharper
@jasonharper你的意思是从Popen获得输出并直接添加到另一个Popen作为标准输入?但是环境变量呢?我怎么能保留它们? – leandrocastelli