如何编写脚本以在后台运行多个进程,并在每个单独的命令完成后运行其他命令?

jon*_*rry 2 linux bash scripting

我正在尝试在bash脚本中执行以下操作:

for x in a b c; do echo foo $x; sleep 5 & y=$! ; (wait $y && echo bar $x) & done
Run Code Online (Sandbox Code Playgroud)

这有可能,而不会增加太多的复杂性(上面的例子当然不起作用)?

编辑:

当然,实际上,echo foo $x; sleep 5例如,复制一些大文件或编译大的东西,第二个操作将是依赖于第一个的操作.

And*_*ite 6

也许我错过了一些东西,但是如何使用()s并将&整个子组命令放在...

for i in 1 2 3; do (echo $i; sleep 5; echo end $i)& done
Run Code Online (Sandbox Code Playgroud)