Использование Python для открытия среды оболочки, запуска команды и выхода из среды

Я пытаюсь автоматизировать процесс с помощью Python. Если я просто в терминале, рабочий процесс выглядит так:

user:> . /path/to/env1.sh
user:> python something.py
user:> exit
user:> . /path/to/env2.sh
user:> python something2.py
user:> exit 

и т. д. еще несколько шагов. каждыйenv.sh порождает новый скрипт с целым рядом переменных среды и тому подобным, установленным в текущем каталоге. Я почти уверен, что мне нужно использовать подпроцесс, но я не совсем уверен, как это сделать. В идеале рабочий процесс должен идти: открыть новую оболочку -> запустить несколько команд -> выйти из оболочки -> повторить при необходимости.

РЕДАКТИРОВАТЬ: Кажется, некоторые разъяснения необходимы. Я понимаю как пользоватьсяsubprocess.Popen() а такжеsubprocess.call() вызывать вещи внутри оболочки, из которой вызывался скрипт Python. Это не то, что мне нужно. Когда один звонитenv.sh он устанавливает целую кучу переменных окружения и несколько других важных вещей, а затем отправляет вас в оболочку для запуска команд. Важно отметитьenv.sh не заканчивается до тех пор, пока один из типовexit после запуска желаемых команд. С помощьюsubprocess.call("./env.sh", shell = True) открывает оболочку и останавливается там. Это как ввод команды./env.sh за исключением того, что когда выдаетсяexit Команда, остальная часть сценария Python. Так:

subprocess.call(". /path/to/env.sh", shell = True)
subprocess.call("python something.py", shell = True)

НЕ делает то, что мне нужно, и не делает:

p = subprocess.Popen(". /path/to/env.sh", shell = True)
subprocess.call("python something.py", shell = True)
p.kill()

Ответы на вопрос(5)

Ваш ответ на вопрос