2011-09-27 348 views
13

我正在开发一个有按钮的程序。当按下时,我想开一个运行终端:从python打开终端

sudo apt-get update 

我使用:

os.system("gnome-terminal -e 'sudo apt-get update'") 

这工作得很好。唯一的问题是当更新完成时,终端关闭。 我能做些什么来让终端打开?

+0

看到这个职位:http://stackoverflow.com/questions/3512055/avoid-gnome-terminal-close-after-script-execution – rodion

回答

11

你可以这样做:

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

和可能与konsole相同(如果我使用KDE)? – mika29

+0

os.system(“gnome-terminal -e'sudo apt-get update'”)。不知道为什么你需要额外的'bash',当这工作得很好。 – mastash3ff

+1

@ mastash3ff - 阅读问题。 “更新完成后,终端关闭”。额外的bash调用使其保持打开状态。 – jterrace

4

有几个选择:

  • 添加; read -p "Hit ENTER to exit"到命令行的末尾。
  • ; sleep 10加到命令行末尾等待一会儿,然后退出。
  • 配置gnome终端:

    转到“编辑”菜单,然后单击“当前配置文件”。点击“标题和命令”标签。在那里,有一个叫做“当命令退出”的设置。将其更改为“保持终端打开”。你也可以创建一个新的配置文件。

0

可以删除-e

os.system("gnome-terminal 'sudo apt-get update'") 
+1

无法让这个工作。必须按照上面的建议使用-e选项。 – mastash3ff