从python打开一个源终端

时间:2018-08-01 08:03:04

标签: python terminal operating-system

我正在尝试运行一个脚本,该脚本为用户打开一个新终端,该终端来自其他文件。

此刻我的代码如下:

os.system("gnome-terminal 'bash -e -c \"source " + path_to_file + "\"'")

是的,它的确打开了一个控制台,该控制台也保持打开状态,但我还想将控制台导出到特定文件。

我还通过在上一行中直接运行带有源信息的命令来进行测试,并且该命令有效。但是,如果我尝试启动它并执行相同操作,那将是行不通的。

我希望有人能告诉我该如何使终端向用户开放并由其来源。

1 个答案:

答案 0 :(得分:0)

这几乎是跨站点重复https://serverfault.com/questions/368054/run-an-interactive-bash-subshell-with-initial-commands-without-returning-to-the

问题是双重的:

  1. -e是gnome终端的标志,不是bash。由于它是gnome,所以忽略了您。
  2. -c将在运行命令后立即退出。

这就是您想要的:

os.system("gnome-terminal -e 'bash --init-file {}'".format(path_to_file))

顺便提一句,在我的行中使用format不太重要,但是您将从中受益更多。另外,您可以将"""用作3d引号,因此可以在其中同时使用"'