如何获取命令运行所需的总时间?

时间:2017-03-31 20:58:17

标签: bash shell

我知道你可以使用以下内容获得每个函数的编译时间:

xcodebuild -workspace App.xcworkspace -scheme App clean build OTHER_SWIFT_FLAGS="-Xfrontend -debug-time-function-bodies" | grep .[0-9]ms | grep -v ^0.[0-9]ms | sort -nr > culprits.txt

或者

defaults write com.apple.dt.Xcode ShowBuildOperationDuration -bool YES

但是如何在命令行中打印出总构建时间?

3 个答案:

答案 0 :(得分:2)

一种稍微有效的方法 - 在这里我们只调用date两次:

#!/bin/bash
start_time=$(date +%s)
# xcode command here
end_time=$(date +%s)
printf 'Elapsed time is %d seconds\n' $((end_time - start_time))

即使没有分叉也可以获得当前时间printf

#!/bin/bash
printf -v start_time '%(%s)T' -1
# xcode command here
printf -v end_time   '%(%s)T' -1
printf 'Elapsed time is %d seconds\n' $((end_time - start_time))

答案 1 :(得分:1)

我想最简单的方法就是运行这样的东西:

#!/bin/sh

COMPILE_START=`date`
# your compile commands
COMPILE_END=`date`
printf "%s\n" $(( $(date -d "$COMPILE_END" "+%s") \
                - $(date -d "$COMPILE_START" "+%s") ))

答案 2 :(得分:1)

假设它是一个bash命令:

startTime=$(date +%s)

#Your commands

finishTime=$(date +%s)
timeElapsed=$((finishTime - startTime))
minute=$((timeElapsed / 60))
sec=$((timeElapsed % 60))
echo Total time: $minute min $sec sec