在 python 脚本中调用 sudo make install 时出现问题

在 python 脚本中调用 sudo make install 时出现问题

我在脚本中编写了以下代码来配置 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 并且可以移植。

相关内容