I\'m struggling to parse the output of the time command in bash - and even to stop it from printing out its output when I call it. This is my test code:
#!/b
I wanted to post this as a comment, but it would be too long. I wanted to present another slightly different way to obtain the data.
You can use the two sub-shells to get the output of time as a stream using /bin/sh
rather than /usr/bin/time
to obtain the timing of the execution. I imagine you can substitute time
here with /usr/bin/time
.
$ ((time ./print_test.sh > deleteme) 2>&1) > deletemetime
$ cat deleteme
test
$ cat deletemetime
./print_test.sh > deleteme 0.00s user 0.00s system 86% cpu 0.003 total
$ ((time ./print_test.sh > deleteme) 2>&1) | sed 's/system/kernel/'
./print_test.sh > deleteme 0.00s user 0.00s kernel 86% cpu 0.003 total
Note also that there appears to be a difference in the way it will produce output. Sometimes it is in that format and sometimes it is in this format:
real 0m0.420s
user 0m0.385s
sys 0m0.040s
Not sure at this point what determines one way or the other.
Of course, you can use e.g.
TIMEFORMAT='%3R'
to fix the format.