使用python执行bash脚本并设置环境变量

时间:2018-10-17 11:05:38

标签: python subprocess

我一直在尝试使用子流程模块连续运行一系列Shell命令,以使用python(第一次)自动执行某些任务。以下是前面提到的任务中涉及的步骤:

  1. 转到位置1
  2. 在路径位置执行cshell脚本
  3. 转到位置2
  4. 在新路径位置执行另一个cshell脚本

我为此编写了以下代码:

#! /usr/bin/python
import subprocess
import os
path = r'/AA/BB/CC/DD/EE/FF/GG/HH/'
os.chdir(path)
p1 = subprocess.Popen('./xyz.csh', stdout=subprocess.PIPE, shell=True)
outdata = p1.communicate()[0]
os.chdir('../XX/YY/')
subprocess.call("./abc.csh")
print("Simulation complete")

该脚本文件包含一些setenv命令,这些命令设置了执行abc.csh脚本所需的环境变量。 我有以下有关subprocess.Popen()例程用法的查询,因为subprocess.Popen()例程为执行xyz.csh创建了一个子外壳,由脚本执行设置的环境变量一旦执行完成,并且abc .csh(需要那些环境变量才能执行)在执行期间引发错误。有没有一种方法可以在主外壳中设置环境变量,以便abc.csh可以成功执行。

0 个答案:

没有答案