将 python 变量传递给 os.system(gnome-terminal) 命令



如何将python变量传递到gnome-terminal命令选项中?我想使用特定命令打开多个终端。

这是我想做的代码(示例):

cmd = "echo OK"
os.system("gnome-terminal -e 'bash -c "'cmd' ; exec bash"'")

但它不起作用,因为 shell 试图解释命令"cmd"(bash : cmd: 找不到命令)

你能帮我吗?

谢谢你们

您可以使用 format 将变量替换为字符串:

cmd = "echo OK"
os.system("gnome-terminal -e 'bash -c "'{}' ; exec bash"'".format(cmd))

我认为您传递的是字符串"cmd"而不是变量cmd = "echo OK"。试试这个。

cmd = "echo OK"
os.system("gnome-terminal -e 'bash -c " + cmd + " ; exec bash'")

编辑

>

也许模块subprocess可以帮助您。试试这个片段。

import subprocess    
cmd_line = "echo Hello!"
p = subprocess.Popen(cmd_line, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out = p.communicate()[0]
print out

相关内容

最新更新