在多个窗口中自动执行终端命令并在每个窗口中返回提示的简洁方法?

在多个窗口中自动执行终端命令并在每个窗口中返回提示的简洁方法?

因此,作为我现在工作流程的一部分,每当我启动一个项目时,我都会在它旁边打开两个终端窗口 - 一个用于操作和监视git,另一个用于操作和监视gulp/grunt。就目前而言,我手动打开这些窗口,导航到适当的根目录,然后运行初始命令 - 它变得非常繁琐且耗时。

我一直在寻找一种方法来自动化这个过程并删除其中的一些手动步骤,并且我取得了一些进展 - 我编写了一个.command文件,双击时,打开两个新的终端窗口并执行我指定的脚本。

cd "$(dirname "$0")/_launchscripts/"
open -a Terminal.app ./git.command
open -a Terminal.app ./grunt.command

为了清晰起见,文件结构如下:

_launch.command
_launchscripts/
    git.command
    grunt.command

为了避免终端窗口在完成后立即退出,我了解到您可以简单地使用 打开一个新的登录 shell 会话bash -l。因此,我的git.commandgrunt.command看起来像这样:

cd "$(dirname "$0")/../build/path/to/root"
[git or grunt status commands]
bash -l

现在的问题是每个终端窗口都打开了两个 bash 会话,一个嵌套在另一个中。这有点烦人,因为终端窗口现在在关闭时提示“您确定要关闭这个运行 bash(2) 的窗口吗?”而不是立即关闭 - 但更重要的是,我觉得我进一步深入挖掘只会让事情变得过于复杂。我想让它恢复简单和优雅。

一定有更简单的方法可以解决这个问题。双击后,是否可以生成多个 shell 窗口,在每个窗口中运行几个简单的命令,然后返回到原始 shell 提示符 - 或者至少打开一个新 shell 并终止父级?我也愿意接受任何聪明的替代方案,我确信还有其他方法我还不够了解,无法考虑。

相关内容