Выполнение bash-скрипта и установка переменных окружения с использованием python - PullRequest
0 голосов
/ 17 октября 2018

Я пытался использовать модуль подпроцесса для последовательного запуска последовательности команд оболочки, для автоматизации определенных задач с использованием 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 мог выполняться с ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...