Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14810

Re: Strange behaviour from jobs -p in a subshell

From Chet Ramey <chet.ramey@case.edu>
Newsgroups gnu.bash.bug
Subject Re: Strange behaviour from jobs -p in a subshell
Date 2018-11-13 09:59 -0500
Organization ITS, Case Western Reserve University
Message-ID <mailman.3979.1542121206.1284.bug-bash@gnu.org> (permalink)
References <b17b162c-9f60-37fc-2473-30e267a681d2@st-andrews.ac.uk>

Show all headers | View raw


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    chet@case.edu    http://tiswww.cwru.edu/~chet/

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

Re: Strange behaviour from jobs -p in a subshell Chet Ramey <chet.ramey@case.edu> - 2018-11-13 09:59 -0500

csiph-web