我正在尝试并行运行命令。但这些命令需要在不同的目录中运行。我该如何实现?我可以这样做吗:
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 则在后台启动,因为后面有&