O uso do processo filho é definido em algum lugar dentro das chamadas do sistema wait3 ou wait4 por meio de um ponteiro struct rusage ( wait4(2) ). Em as fontes bash , encontramos:
$ egrep -r 'wait[34][[:blank:]]*\(' .
./jobs.c: wait3 ((union wait *)statusp, options, (struct rusage *)0)
./jobs.c: wait3 (statusp, options, (struct rusage *)0)
./jobs.c: wait3 (statusp, options, (int *)0)
$
O espaço em branco (struct rusage *)0 indica que o uso do recurso não será retornado para bash . Uma pesquisa de struct rusage exibe a função time_command em execute_cmd.c , e isso parece coletar informações de uso por meio de getrusage(2) . No entanto, isso é para TIMEFORMAT do time builtin e não parece cruzar com o código do histórico. Sem remendar bash , acho que você teria que fazer algum tipo de ação envolvendo a execução de tudo em time e, em seguida, capturar o erro padrão em que as informações de horário aparecem em algum arquivo?