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
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.
(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