Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: wait for the next process to finish



2011/12/13 Anthony R Fletcher <arif@xxxxxxxxxxxx>:
> I was using this loop
>
>  for f in *.txt
>  do
>          what-ever-has-to-happen $f &
>          pwait 20
>  done
>
> where pwait is a function
>
>  function pwait() {
>          while [ $(jobs -rp | wc -l) -ge $1 ]
>          do
>                  # sleep 10
>                  wait
>          done
>  }
>
> (see http://superuser.com/questions/158165/parallel-shell-loops for one
> example amongst many).
>
> I was hoping that using "wait" would be better than using a "sleep 10".
> But wait waits for them all and not just he last to finish. The nice
> thing is that this is a small, easy loop and all the brains is in the
> barrier function pwait. Sadly a sleep for 10 seconds is completely
> arbitrary.

I'm wondering if you're not just looking for zargs :-)

autoload -U zargs
zargs -n 1 -P 20 *.txt -- what-ever-has-to-happen

Best regards,

-- 
Jérémie



Messages sorted by: Reverse Date, Date, Thread, Author