On 11/13/18 4:28 AM, Christopher Jefferson wrote: > Consider the following script. While the 3 sleeps are running, both jobs > -p and $(jobs -p) will print 3 PIDs. Once the 3 children are finished, > jobs -p will continue to print the 3 PIDs of the done Children, but > $(jobs -p) will only print 1 PID. $(jobs -p) always seems to print at > most 1 PID of a done child.
Since the $(jobs -p) is run in a subshell, its knowledge of its parent's jobs is transient. In this case, the subshell deletes knowledge of the jobs it inherits from its parent, but hangs onto the last asynchronous job in case the subshell references $!. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU c...@case.edu http://tiswww.cwru.edu/~chet/