Greg Wooledge wrote in <zu1vzhrpynqlx...@wooledge.org>: |On Thu, Nov 09, 2023 at 10:17:35PM +0100, Andreas Schwab wrote: |> On Nov 09 2023, Greg Wooledge wrote: |>> re='^\[([0-9]+)\]' .. |>> while IFS= read -r line; do |>> if [[ $line =~ $re ]]; then ... |> That fails for multi-line commands that happen to contain matches for |> re. |> |> $ (sleep 100; printf $'\n[100]\n') & | |Fair enough. I believe *nothing* would work in that case; the output of |"jobs -l" cannot be safely parsed in its current form. | |Adding a NUL-delimited output option might work around that, but if we're |modifying the jobs builtin, we might as well just add the -i or -j option |instead.
As i started this: it should simply quote it so that "i=$(eval $x)" brings back the real value. I use that excessively for the mutilated shell capabilities of the MUA i maintain (am at to at least improve that a bit for ie "eval set \$(($1+1))".). --End of <zu1vzhrpynqlx...@wooledge.org> --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)