On 12/3/17 6:07 PM, Stephane Chazelas wrote: > 2017-12-03 17:31:00 -0500, Chet Ramey: >> On 12/1/17 2:00 PM, Stephane Chazelas wrote: >> >>> Also, there's a lot of problems reported at >>> unix.stackexchange.com at least that are caused by bash not >>> waiting for the processes started by process substitutions, >>> especially the >(...) form. >> >> Bash always reaps these processes. Do you mean waiting for them >> to terminate before executing the next command? > [...] > > Hi Chet, > > yes, that's what I meant as in: > > $ rm -f a; bash -c 'echo test > >(cat > a); cat a' > $
Bash-4.4 allows you to wait for the last process substitution, since the pid appears in $!, like ksh93. There's still no option to wait for more than one, though I imagine I could make that work as part of `wait' without arguments. $ cat ~/x20a rm -f a; echo test > >(cat > a) echo waiting for $! wait $! echo $? cat a $ ../bash-4.4-patched.rhe6/bash ~/x20a waiting for 2762 0 test $ ../bash-4.4-patched.rhe6/bash --version GNU bash, version 4.4.12(2)-release (x86_64-unknown-linux-gnu) Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. 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://cnswww.cns.cwru.edu/~chet/