2017-05-31 150 views
1

如何以编程方式打开终端应用程序,如Gnome终端,并运行cd /some/path; source ./setup.bash?我正在尝试编写一个脚本,它将自动启动一些通用终端和IDE以便工作。以编程方式打开Gnome终端并运行命令

我想:

gnome-terminal --tab --working-directory="/some/path" -e 'source ./setup.bash' 

,但会启动GNOME终端窗口,而该窗口会显示错误:

Failed to execute child process "source" (No such file or directory) 

据推测,这是因为它没有执行在bash命令,所以我改为设法:

gnome-terminal --tab --working-directory="/some/path" -e 'bash -c "source ./setup.bash"' 

然而,似乎做什么都没有。它不会启动窗口,也不会生成任何stdout或stderr输出。

我能得到的最接近的是:

gnome-terminal --tab --working-directory="/some/path" -e 'bash -c "source ./setup.bash; bash -i"' 

会启动GNOME终端,似乎正确地源setup.bash,但一些终端格式由setup.bash设置不显示,可能是因为我启动一个新的bash外壳。

有没有更好的方法?

回答

1

当您使用-e选项时,gnome-terminal将运行该命令而不启动新的shell(甚至可以运行如下所示的内容:gnome-terminal -e gedit),因此如果要将命令运行到bash shell的进入,你必须做这样的事情一个新的终端/标签:

gnome-terminal -x bash -c "command" 

但需要注意的是,当“命令”结束端子/标签将结束了。

+0

这似乎并不奏效。如果我尝试'gnome-terminal --tab --working-directory =“/ some/path”-x'bash -i -c“source ./setup.bash”''我得到错误'执行子进程失败“bash -i -c”source ./setup.bash“”'正如我在我的问题中所暗示的,我不希望标签结束。 – Cerin

+0

您是否尝试了如下,gnome-terminal -x“bash”-c“command”为我工作。请注意-x参数值上的引号。 – Harini

0

您可以指定bash启动文件来设置变量。您可能希望该文件有source $HOME/.bashrc它:

$ gnome-terminal --working-directory="/some/path" -e 'bash --rcfile ./setup.bash -c gdb' 

可以在以后写一个命令,因为我有-c gdb

相关问题