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

时间:2017-01-27 11:10:45

标签: python bash gnome-terminal

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

以下是我想要做的代码(示例):

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

但它没有用,因为shell试图解释命令“cmd”(bash:cmd:command not found)

你能帮我吗?

谢谢你们

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:-1)

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

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

<强>编辑&gt;

也许模块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