我相信这不应该像我find它一样辛苦!
当我login到我的机器时,我希望它启动一个bash shell,在一个给定的目录中,打开并命名一些标签,并在每一个启动一个进程。
我想如果我放
cd ~/xxx/xxx/xxx
在.bashrc中,然后用类似的东西自动启动bash shell
gnome-terminal --tab -e "bash -c 'rails s'" --tab -e "bash -c 'spork'" --tab -e "bash -c 'autotest'" --tab -e "bash -c 'rails c'" --tab -e 'tail -f log/development.log'
它应该工作
它不 – 我得到“有一个错误,为这个terminal创buildsubprocess无法执行subprocess的'轨'(没有这样的文件…
轨道是在path中 – 无论是在根目录和目的地的目录,并给出完整的path没有帮助 – terminal窗口不打开。
更新:这不能按预期工作的原因是,直到执行启动进程的命令,bashrc不会改变工作目录。 (我可以看到,如果我做标签-e'密码')
所以问题是,我怎样才能改变目录,然后开始运行的进程?
有一个非常好的解决scheme:
从链接引用:
这是我们在超级用户制定的一个很好的技巧
在你的.bashrc的结尾添加一个评估“$ BASH_POST_RC”
设置每个标签的BASH_POST_RC环境variables为你喜欢执行的命令,例如:gnome-terminal –working-directory =“/ home / zardoz / projects / my_rails_app”–tab -e'bash -c“export BASH_POST_RC = \“rails server \”; exec bash“'–tab -e'bash -c”export BASH_POST_RC = \“autotest \”; exec bash“'
@Gilles:感谢您的解决scheme!
我用这个想法创build了下面的bash脚本。
gnome-terminal –working-directory =“/ home / USER / rails_projects / PROJECT ”–tab –title = Terminal –profile = Rails –tab –profile = Rails –title = Console -e'bash – c“export BASH_POST_RC = \”rails console \“; exec bash”'–tab –profile = Rails –title = Guard -e'bash -c“export BASH_POST_RC = \”guard \“; exec bash”' – -tab –profile = Rails –title = Server -e'bash -c“export BASH_POST_RC = \”rails server \“; exec bash”'–tab –profile = Rails –title = Tail -e'bash -c“export BASH_POST_RC = \”tail -f log / development.log \“; exec bash”'
使用-c参数调用bash时,不会调用.bashrc 。
相反,你可以打包调用gnome-terminal的脚本,首先做cd 。 有些像这样:
#!/bin/bash cd ~/xxx/xxx/xxx gnome-terminal --tab -e "bash -c 'rails s'" --tab -e "bash -c 'spork'" --tab -e "bash -c 'autotest'" --tab -e "bash -c 'rails c'" --tab -e 'tail -f log/development.log'