我有3个shell脚本,我需要并行运行前两个脚本然后在两个(前两个)脚本完成后运行第三个脚本脚本。我该怎么做呢?我所知道的是在后台运行前两个脚本。
sh script1.sh &
sh script2.sh &
sh script3.sh &
我相信第三个脚本仍然会继续这个。
第三个脚本将如何“等待”它们?
使用wait
内置。它应该是:
sh script1.sh &
sh script2.sh &
wait
sh script3.sh
GNU parallel是一个并行执行命令的工具:
parallel -j2 ::: './script1.sh' './script1.sh' && ./script3.sh
script1和script2都将并行执行,两者完成后将执行script3。
Parallel's tutorial显示更高级的行为定制,以备需要时使用