Struggling to parse (bash) time command

后端 未结 5 726
甜味超标
甜味超标 2020-12-07 00:55

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         


        
5条回答
  •  無奈伤痛
    2020-12-07 01:23

    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.

提交回复
热议问题