How to ignore program's output when using /usr/bin/time?

前端 未结 2 2022
渐次进展
渐次进展 2021-01-13 23:43

I want to know how long a program running, so I tried \"/usr/bin/time ./program > /dev/null\". But soon I found it displays program\'s output to stderr. I tried \"/usr/bin/t

相关标签:
2条回答
  • 2021-01-14 00:19

    Use the -o flag to send the output from time to something else then stderr. For example, if you still want it on screen:

    /usr/bin/time -o /dev/tty ./program >/dev/null 2>&1
    

    Or, if you want output on stdout very badly:

    /usr/bin/time sh -c './program >/dev/null 2>&1'
    

    or similar. However, now you're also measuring the shell's time to start the process, which may or may not be a problem.

    0 讨论(0)
  • 2021-01-14 00:31

    (Unable to comment)

    It might be nicer to use a subshell:

    /usr/bin/time ( ./program > /dev/null 2>&1 ) 2>&1
    

    Or better yet a compound construct:

    /usr/bin/time { ./program > /dev/null 2>&1; } 2>&1
    
    0 讨论(0)
提交回复
热议问题