2015-11-07 125 views
0

通过python,有没有办法打开gnome-terminal然后发送命令给它,然后在那个窗口中运行?例如,在哪里可以做类似Python - 与gnome-terminal进行通信

terminal.communicate("echo testing") 

和gnome-terminal打印输出?我已经看到了使用子进程Popen并进行通信的类似帖子,虽然我没有得到新开放的终端来运行命令。感谢您的帮助

+0

这类似于[这个问题](http://askubuntu.com/questions/313554/how-to -control-gnome-terminal-from-python-scrypt),其中未答复。回答的问题似乎只在gnome终端开始时发送一个命令。 – Shatnerz

+0

来自复本的答案已经处理它:创建一个命名管道并将命令写入它(有多少个)。 – jfs

+0

我想我错过了一些东西。我无法让终端从命名管道运行命令 – Shatnerz

回答

0

你可以做使用os.system来执行命令,像这样

import os 
os.system("gnome-terminal -e 'bash -c \"sudo apt-get update; exec bash\"'") 
+0

是的,但那里没有固定的连接。稍后再说,我想在特定终端中自动运行其他命令,而不需要用户输入命令 – Shatnerz

+0

您可以随时使用&&符号在一行中执行多个命令,例如 - sudo apt-get update && sudo apt-得到升级 – Bharat

+0

感谢您的跟进。我知道使用&&,但我一直在寻找能够从python控制终端,不仅仅是启动终端并运行一系列命令。也许我想在稍后的某个特定事件之后再推命令。这只是我为我正在研究的东西而设计的一种想法。我可能最终只会在终端开放时运行。它完成了工作,但我只是想这可能会在稍后添加更多的功能 – Shatnerz