从bash脚本如何判断&过程结束

时间:2015-01-13 16:52:49

标签: bash

我试图在bash脚本中启动多个命令,但等待它们完成

它看起来像这样:

A &
B &
C &
D

不幸的是,我不知道哪些过程会先完成。但是在完成所有过程后我需要完整的脚本。

就像我尝试过的新秀一样:

(A &
B &
C &
D) && E

不幸的是E仅在D完成后执行。如果我能在A - D执行官之后得到E,我想要它

希望总结问题。

由于

2 个答案:

答案 0 :(得分:6)

A &
B &
C &
D &
wait
E

来自help列表:

wait: wait [-n] [id ...]
    Wait for job completion and return exit status.

    Waits for each process identified by an ID, which may be a process ID or a
    job specification, and reports its termination status.  If ID is not
    given, waits for all currently active child processes, and the return
    status is zero.  If ID is a a job specification, waits for all processes
    in that job's pipeline.

    If the -n option is supplied, waits for the next job to terminate and
    returns its exit status.

    Exit Status:
    Returns the status of the last ID; fails if ID is invalid or an invalid
    option is given.

答案 1 :(得分:0)

wait(1)是规范解决方案,但过去我使用了q& d解决方案:

( A & B & C & D & ) | cat; E