Я написал следующий код для конфигурирования yara пакета в моем сценарии, но когда он звонит, sudo делают установку, Python дают мне ошибку. Как я могу зафиксировать его?
def yara_installation(self):
os.chdir("yara/")
self.installYara = "./bootstrap.sh;./configure;make;sudo make install"
for self.items in self.installYara.split(";"):
if (subprocess.run(self.items, stdout=DEVNULL, stderr=DEVNULL)):
self.color.print_blue("\t[+] {} command is running.".format(self.items))
else:
self.color.print_blue("\t[+] {} command isn't running.".format(self.items))
Исключение: [Errno 2] Никакой такой файл или каталог: 'sudo делают установку'
Замените Ваш subprocess.run()
команда с этим:
subprocess.call(self.items, stdout=DEVNULL, stderr=DEVNULL,shell=True)
Это должно работать, однако, я лично приблизился бы к этому через использование списков и назвал бы определенную оболочку на каждый сценарий оболочки. shell=True
однако будет звонить /bin/sh
на Вашем bootstrap.sh
, который, надо надеяться, не содержит bashisms и является портативным.