Q:

Bash 'times' call outputs two lines, but it's not documented or is unclear what each line represents

Initially I thought the second line represented the times accumulated by all running scripts, but now I'm not so sure, since I have been getting zero counts for scripts that run for 45 seconds or more.  What do the lines represent?  Also, does bash accumulate user/system time spent in non-bash sub processes?  For example, if you have a script that calls a binary program that runs for a long time, versus a script that calls lots of other short running bash scripts.

$ ( for (( i=0 ; i<10 ; i++ )) ; do sleep 1 ; done ; times )
0m0.003s 0m0.003s
0m0.003s 0m0.008s

The documentation is really vague.

A:

$ help times

times: times
    Display process times.

    Prints the accumulated user and system times for the shell and all of its
    child processes.

    Exit Status:
    Always succeeds.

$ times
0m0.378s 0m0.183s  ## This is the shell's
0m2.134s 0m0.342s  ## This is the child processes'.

Another test:
$ ( time sha1sum /some/files/* &>/dev/null ; times )
real    0m0.049s
user    0m0.046s
sys     0m0.003s
0m0.002s 0m0.002s
0m0.044s 0m0.001s  ## Matches largely child process' runtime.

And here's from the source code of Bash 4.0 in builtins/times.def:
  print_timeval (stdout, &self.ru_utime);
  putchar (' ');
  print_timeval (stdout, &self.ru_stime);
  putchar ('\n');
  print_timeval (stdout, &kids.ru_utime);
  putchar (' ');
  print_timeval (stdout, &kids.ru_stime);
  putchar ('\n');

It shows that the first column is the user time while the second one is the system. The shell's time table is printed before the child processes'.

