wait [ job ... ]
       Wait for the specified jobs or processes.  If job is not given then
       all  currently active child processes are waited for.  Each job can
       be either a job specification or the process ID of a job in the job
       table.  The exit status from this command is that of the job waited
       for.  If job represents an unknown job or process ID, a warning  is
       printed (unless the POSIX_BUILTINS option is set) and the exit sta-
       tus is 127.

       It  is  possible to wait for recent processes (specified by process
       ID, not by job) that were running in the  background  even  if  the
       process  has  exited.  Typically the process ID will be recorded by
       capturing the value  of  the  variable  $!  immediately  after  the
       process  has  been  started.   There  is  a  limit on the number of
       process IDs remembered by the shell; this is given by the value  of
       the  system  configuration parameter CHILD_MAX.  When this limit is
       reached, older process IDs are discarded,  least  recently  started
       processes first.

       Note  there  is no protection against the process ID wrapping, i.e.
       if the wait is not executed soon  enough  there  is  a  chance  the
       process  waited  for  is  the  wrong  one.  A conflict implies both
       process IDs have been generated by the shell,  as  other  processes
       are  not  recorded,  and that the user is potentially interested in
       both, so this problem is intrinsic to process IDs.
