如何将python变量传递给gnome-terminal命令选项?我想用特定的命令打开多个终端。
以下是我想要做的代码(示例):
cmd = "echo OK"
os.system("gnome-terminal -e 'bash -c \"'cmd' ; exec bash\"'")
但它没有用,因为shell试图解释命令“cmd”(bash:cmd:command not found)
你能帮我吗?
谢谢你们
答案 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