首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将python变量传递给os.system(gnome-terminal)命令

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

Stack Overflow用户
提问于 2017-01-27 19:10:45
回答 2查看 411关注 0票数 0

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

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

代码语言:javascript
复制
cmd = "echo OK"
os.system("gnome-terminal -e 'bash -c \"'cmd' ; exec bash\"'")

但是它不能工作,因为shell试图解释命令"cmd“(bash : cmd: command not found)

你能帮帮我吗?

谢谢你们

EN

回答 2

Stack Overflow用户

发布于 2017-01-27 19:12:46

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

代码语言:javascript
复制
cmd = "echo OK"
os.system("gnome-terminal -e 'bash -c \"'{}' ; exec bash\"'".format(cmd))
票数 0
EN

Stack Overflow用户

发布于 2017-01-27 19:16:01

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

代码语言:javascript
复制
cmd = "echo OK"
os.system("gnome-terminal -e 'bash -c " + cmd + " ; exec bash'")

EDIT>

也许subprocess模块可以帮助你。试试这段代码。

代码语言:javascript
复制
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
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41892602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档