我在脚本中编写了以下代码来配置 yara 包,但是当它调用 sudo make install 时,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 make install'
答案1
用以下命令替换您的subprocess.run()
命令:
subprocess.call(self.items, stdout=DEVNULL, stderr=DEVNULL,shell=True)
这应该可行,但是,我个人建议通过使用列表来解决这个问题,并为每个 shell 脚本调用特定的 shell。shell=True
但是将调用/bin/sh
你的bootstrap.sh
,希望它不包含任何 bashisms 并且可以移植。