Каждое утро, приходя на работу, я запускаю сценарий, который извлекает несколько репозиториев, которые использует моя компания:
#!/bin/bash
cd ~/myCompany/rep1
git pull --rebase
git submodule update
cd ~/myCompany/rep2
git pull --rebase
npm install
npm run build
cd ~/myCompany/rep3
git pull --rebase
npm install
npm run build
cd ~/myCompany/rep4
git pull --rebase
npm install
npm run build
cd ~/myCompany/rep5
git pull --rebase
git submodule update
echo "done!"
Как видите, нужно создавать разные репозитории, другим нужен submodule update и так далее.
Мне было интересно, есть ли способ заставить этот скрипт запускать каждый git pull и их соответствующие команды параллельно, а не одну за другой. Кто-нибудь знает, как я этого добился?





Сделайте это функцией, вызовите функцию в фоновом режиме:
#!/bin/bash
npmBuild() {
cd $1
git pull --rebase
npm install
npm run build
}
npmBuild ~/myCompany/rep2 &
npmBuild ~/myCompany/rep3 &
Сделайте немного другую функцию для тех, где у вас нет npm.