如何以编程方式打开终端应用程序(如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}}外壳
有更好的方法吗?
答案 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
。