Если характер вашего процесса таков, что запуск оболочки не будет слишком сильно влиять на время, один простой подход состоит в том, чтобы оболочка выполняла направление в виде подпроцесса time
:
/usr/bin/time -f "%K %e" sh -c '"$0" "$@" >/dev/null 2>&1' ./mycommand -arg=word
Я бы также предложил использовать встроенную в bash версию time
вместо внешней, что позволяет использовать приемы, описанные в BashFAQ # 32 :
TIMEFORMAT='%R' # replace for whatever is equivalent to your "%K %e"
timing=$(time { ./mycommand >/dev/null 2>&1; } 2>&1)