小编Bra*_*ary的帖子

打开多个终端选项卡并运行命令

我需要打开多个终端选项卡,给它们命名,转到一个目录,并使每个选项卡运行一个命令。

我是 Linux 和 shell 脚本的新手,在网上搜索并检查了一些解决方案后,我制作了这个脚本(根据以下答案编辑):

#!/bin/bash

cd /media/Extra/Project

tab=" --tab-with-profile=Default"
options=(--tab --title=Terminal)

cmds[1]="'rails s'"
titles[1]="Server"

cmds[2]="'rails c'"
titles[2]="Console"


for i in 1 2; do
  options+=($tab --title="${titles[i]}"  -e "bash -c \"${cmds[i]} ; bash\"" )          
done

gnome-terminal "${options[@]}"


exit 0
Run Code Online (Sandbox Code Playgroud)

它打开选项卡,命名它们,但无法执行生成此错误的命令:

为此终端创建子进程时出错

另一个缺点是,如果我停止运行命令,它会关闭选项卡,这是我不想要的。我需要能够停止命令并在同一选项卡中再次运行它。

脚本有什么问题?有没有另一种更简单的方法来做到这一点?

注意:如果我从命令中删除 (-e "\"bash -c ${cmds[i]} ;bash\"") 部分,它会打开给定目录中的选项卡并命名它们,没有错误。

-编辑-1:

在应用下面的@Tuknutx 答案并编辑脚本后,错误不再出现,但它给了我bash: rails c: command not foundrails s创建了一个新的 rails 应用程序而不是启动 rails 服务器,一旦访问此文件夹,我将使用 .rmvrc 选择一个 gemset .

rvm bash scripts gnome-terminal rails

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

bash ×1

gnome-terminal ×1

rails ×1

rvm ×1

scripts ×1