Bash 如何在后台启动多个带有子shell的程序,并使它们保持连接?

Bash 如何在后台启动多个带有子shell的程序,并使它们保持连接?,bash,git-bash,Bash,Git Bash,我有很多程序,每个程序都在自己的子目录中,我需要在后台运行 它们都需要以自己的目录作为工作目录启动 它们都打印到我希望在终端中看到合并的标准输出 我有以下脚本,但不起作用: #/bin/bash (cd service1dir; service1) & (cd service2dir; service2) & (cd service3dir; service3) & (cd service4dir; service4) & 只有一个项目启动了,但我不知道为

我有很多程序,每个程序都在自己的子目录中,我需要在后台运行

  • 它们都需要以自己的目录作为工作目录启动
  • 它们都打印到我希望在终端中看到合并的标准输出
我有以下脚本,但不起作用:

#/bin/bash

(cd service1dir; service1) &
(cd service2dir; service2) &
(cd service3dir; service3) &
(cd service4dir; service4) &
只有一个项目启动了,但我不知道为什么


仅供参考,目标平台是Windows上的git bash,但我希望它也能在macOS Sierra上运行。

我想你不需要这些括号。但是接下来需要
cd
返回到该脚本的根目录中

#!/bin/bash

cd service1dir; service1 &
cd -;
cd service2dir; service2 &
cd -;
cd service3dir; service3 &
cd -;
cd service4dir; service4 &
这在LinuxBash下适用。所有服务在后台启动,而输出转到标准输出