我尝试构建一个小脚本来启动我的开发环境。对于该任务,我尝试打开一个带有多个选项卡的 gnome 终端,其中自动启动 rails 服务器和自动测试。但
gnome-terminal --tab -e "rails 服务器" --tab --tab
不起作用(“创建子进程时出错”)。还
gnome-terminal --tab -e "bash -c \"rails server\"" --tab --tab`
不起作用。有什么建议可以解决这个问题吗?
我尝试构建一个小脚本来启动我的开发环境。对于该任务,我尝试打开一个带有多个选项卡的 gnome 终端,其中自动启动 rails 服务器和自动测试。但
gnome-terminal --tab -e "rails 服务器" --tab --tab
不起作用(“创建子进程时出错”)。还
gnome-terminal --tab -e "bash -c \"rails server\"" --tab --tab`
不起作用。有什么建议可以解决这个问题吗?
这是我们在Superuser制定的一个很好的技巧
eval "$BASH_POST_RC"
在你的末尾添加一个.bashrc
将每个选项卡的 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 :感谢您的解决方案!
暗中刺探:为您要在选项卡中运行的每个命令创建 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 启动之前遇到奇怪的错误,否则不要担心这一点。
我假设出现错误是因为在 gnome-terminal 尝试运行 rails 时未设置 PATH 。
为什么不使用 rails 服务器的完整路径,或者创建一个设置 PATH 变量的脚本?
已经回复了,但以防万一,看看这个在 KDE、OSX 和 Gnome 桌面上自动化终端的gem 。
对于 Ubuntu 16.04
按Ctr+Shift+T
这将在同一窗口中打开一个新选项卡。此外,最右边的选项卡旁边会出现一个用于添加更多选项卡的按钮。