如何在 os.system 中传递变量?

如何在 os.system 中传递变量?

我正在使用此命令插入变量:

`os.system("sudo insmod /home/hajer/final_module/module.ko src_ip=" +(R1.get()))`

并且它运行良好,但是当我添加一些其他变量时它似乎不起作用并且我没有插入变量。

os.system("sudo insmod /home/hajer/final_module/module.ko src_ip=" +(R1.get())+ "delay=" +(R2.get())+ "tcp_port=" +(R3.get()))

答案1

在这些情况下,最好的办法是在使用字符串之前将其打印出来,这样您就可以看到是否一切正确。

command = "sudo insmod /home/hajer/final_module/module.ko src_ip=" +(R1.get())+ "delay=" +(R2.get())+ "tcp_port=" +(R3.get())
print(command)
os.system(command)

delay我猜你在and参数之前缺少一个空格tcp_port

command = "sudo insmod /home/hajer/final_module/module.ko src_ip=" +(R1.get())+ " delay=" +(R2.get())+ " tcp_port=" +(R3.get())

然后稍微清理一下:

command = "sudo insmod /home/hajer/final_module/module.ko src_ip=%s delay=%s tcp_port=%s" % (R1.get(), R2.get(), R3.get())

os.system已被弃用,您应该使用subprocess模块来代替。

相关内容