在不同的文件夹中运行 GNU 并行命令

在不同的文件夹中运行 GNU 并行命令

我正在尝试并行运行命令。但这些命令需要在不同的目录中运行。我该如何实现?我可以这样做吗:

parallel ::: 'cd platform1 && npm install && npm run build-all'
'cd platform2 && npm install && npm run build-prod'

答案1

#!/bin/sh
(cd platform1 && npm install && npm run build-all && touch flag.1) &
(cd platform2 && npm install && npm run build-prod && touch flag.2) &

while [ !( -f flag.1 -a -f flag.2 ) ]
do sleep 5
done

# All the rest code

####

圆括号(或反引号)内的命令在子 shell 中启动,而子 shell 则在后台启动,因为后面有&

相关内容