以编程方式打开Gnome终端并运行命令

时间:2017-05-31 19:21:44

标签: linux bash shell

如何以编程方式打开终端应用程序(如Gnome Terminal)并运行gnome-terminal --tab --working-directory="/some/path" -e 'source ./setup.bash' ?我正在尝试编写一个脚本,它将自动启动一些常用终端和IDE进行工作。

我试过了:

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

但是启动了一个gnome-terminal窗口,但窗口显示错误:

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

据推测,那是因为它没有在bash中执行命令,所以我尝试了:

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

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

我能得到的最接近的是:

setup.bash

启动gnome-terminal并且似乎正确地提供setup.bash,但bash设置的某些终端格式未显示,可能是因为我正在启动新的{{1}}外壳

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

当你使用-e选项时,gnome-terminal将运行该命令而不启动新的shell(你甚至可以运行类似:gnome-terminal -e gedit),所以如果你想在bash中运行命令shell进入一个新的终端/标签你必须做这样的事情:

PageBase::Before()

但请注意,当"命令"结束终端/标签也将结束。

答案 1 :(得分:2)

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

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

您可以在此之后输入命令,因为我有-c gdb