3

我尝试构建一个小脚本来启动我的开发环境。对于该任务,我尝试打开一个带有多个选项卡的 gnome 终端,其中自动启动 rails 服务器和自动测试。但

gnome-terminal --tab -e "rails 服务器" --tab --tab

不起作用(“创建子进程时出错”)。还

gnome-terminal --tab -e "bash -c \"rails server\"" --tab --tab` 

不起作用。有什么建议可以解决这个问题吗?

4

5 回答 5

14

这是我们在Superuser制定的一个很好的技巧

  1. eval "$BASH_POST_RC"在你的末尾添加一个.bashrc

  2. 将每个选项卡的 BASH_POST_RC 环境变量设置为您要执行的命令,例如: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 :感谢您的解决方案

于 2010-10-11T00:56:01.140 回答
1

暗中刺探:为您要在选项卡中运行的每个命令创建 shell 脚本,使其可执行,并通过绝对路径调用它们,例如将其放入/home/zardoz/bin/railsstart

#! /bin/sh
exec rails server

chmod +x它,然后做

gnome-terminal --tab -e /home/zardoz/bin/railsstart --tab --tab ...

如果这不起作用,我会尝试的下一件事是坚持strace -f -o /tmp/trace.log命令的开头,让它失败,然后深入trace.log了解哪个系统调用实际上失败了以及为什么(会有大量的垃圾在那里 - 从末尾向后阅读并查找以 E 开头的全大写代码短语,例如“ENOEXEC”、“ENOENT”、“EPERM”等。)

编辑:这是您在.bashrc这些脚本之一中提取所有设置的方法:

#! /bin/bash
. ~/.bashrc
exec rails server

注意:您可能需要调整您的.bashrc,以便它不会执行某些仅在“真实”交互式 shell 会话中有效的事情。除非您在 rails 启动之前遇到奇怪的错误,否则不要担心这一点。

于 2010-10-09T16:50:26.747 回答
0

我假设出现错误是因为在 gnome-terminal 尝试运行 rails 时未设置 PATH 。

为什么不使用 rails 服务器的完整路径,或者创建一个设置 PATH 变量的脚本?

于 2010-10-09T20:03:03.130 回答
0

已经回复了,但以防万一,看看这个在 KDE、OSX 和 Gnome 桌面上自动化终端的gem 。

于 2012-12-29T17:57:02.187 回答
0

对于 Ubuntu 16.04

Ctr+Shift+T

这将在同一窗口中打开一个新选项卡。此外,最右边的选项卡旁边会出现一个用于添加更多选项卡的按钮。

于 2017-02-26T21:44:15.863 回答