仅在打开选项卡之后,打开一个新的终端选项卡并在其中运行命令

时间:2018-09-25 12:33:30

标签: ruby-on-rails linux shell terminal tabs

我正在尝试创建脚本以在Rails项目中打开一个新标签,并在该标签内运行rails s,以启动服务器。

我的命令:

xfce4-terminal --tab --title="rails server" --working-directory="Documents/projects/rails_blog" --command="bash -c 'rails s';bash"

新标签页将在正确的目录中打开。
但我总是会收到此错误:
bash: rails: command not found

我认为rails s在打开新标签页之前正在运行

--command标签只需要bash命令。我不知道

那是为什么?我该如何解决呢?

我已经尝试了以下所有答案:
from superuser
stackoverflow - Open a new tab in gnome-terminal using command line
from stackexchange
from ask ubuntu - Open Terminal with multiple tabs and execute application
from ask ubuntu - How to open several Terminal Tabs in different folders (working directories)?

2 个答案:

答案 0 :(得分:0)

为此,我使用tmuxinator。您可以将其放入控制器中,然后运行tmuxinator start project,它将为您在tmux中启动会话。

# ~/.tmuxinator/project.yml

name: project
root: ~/projects/some_path

windows:
  - server: bundle && bundle exec rake db:migrate && rails s

答案 1 :(得分:0)

以下技术在较新的gnome-terminal上效果很好。

(1)这将打开一个新的终端窗口并执行“ ls”      并使终端窗口保持打开状态

gnome-terminal --title=newWindow \\
               -- bash -c "ls; bash"

(2)这将在当前gnome终端内打开一个新选项卡 并在该标签中执行“ ls”。

gnome-terminal --tab --title=newTab \\
               -- bash -c "ls ;bash"

以上技术适用于 使用VTE 0.52.2 + GNUTLS -PCRE2的GNOME终端3.28.2 请注意,旧的gnome-terminal选项-e --command 和-x在将来的版本中已弃用。

在gnome-terminal之后执行命令的首选方式 打开是要有命令后执行 最后一个空-选项。在上面的示例中,我们执行bash 命令,而该命令又需要在该shell中执行的一组命令。第一个选项需要尾随bash,否则窗口/选项卡将关闭。

希望这会有所帮助。