Приложение, которое я пишу, извлекает сценарий оболочки через HTTP из сети, я хочу запустить этот сценарий на python, однако я не хочу физически сохранять его на жесткий диск, поскольку его содержимое уже находится в памяти, иЯ хотел бы просто выполнить это.Я пробовал что-то вроде этого:
import subprocess
script = retrieve_script()
popen = subprocess.Popen(scrpit, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
stdOut, stdErr = popen.communicate()
def retrieve_script_content():
# in reality I retrieve a shell script content from network,
# but for testing purposes I will just hardcode some test content here
return "echo command1" + "\n" + "echo command2" + " \n" + "echo command3"
Этот фрагмент не будет работать, потому что subprocess.Popen
ожидает, что вы будете предоставлять только одну команду за раз.
Есть ли альтернативы для запуска оболочкискрипт из памяти?