LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 923|回复: 5

请问怎么得到一条命令的执行时间?

[复制链接]
发表于 2004-5-25 12:16:17 | 显示全部楼层 |阅读模式
我知道time command命令可以显示command执行时间,但时间结果只是显示到屏幕。我想把结果存到一个变量里(我要做一个脚本计算db2 -tf q2.sql命令运行n次所用的时间),用命令替换的方式
tt=$(time db2 -tf q2.sql)
tt却得不到结果输出,执行时间还是显示到屏幕。请问怎么解决这问题啊:help
发表于 2004-5-25 12:50:56 | 显示全部楼层
  1. a=$(date +%s);command;echo $(($(date +%s)-a))
复制代码
发表于 2004-5-25 19:36:29 | 显示全部楼层

回复: 请问怎么得到一条命令的执行时间?

最初由 rosbur 发表
我知道time command命令可以显示command执行时间,但时间结果只是显示到屏幕。我想把结果存到一个变量里(我要做一个脚本计算db2 -tf q2.sql命令运行n次所用的时间),用命令替换的方式
tt=$(time db2 -tf q2.sql)
tt却得不到结果输出,执行时间还是显示到屏幕。请问怎么解决这问题啊:help

$ { time ls; } 2> time.out
$ tt=$(<time.out)
$ echo "$tt"
 楼主| 发表于 2004-5-27 11:43:49 | 显示全部楼层
谢谢javalee和dearvoid的回复。javalee的方法算的时间只精确到秒,可我要用time命令那样的精确度(0.001秒)。dearvoid的方法用的是time,可是也不行啊。执行后time.out里没有内容。请问还可以怎么做吗?我想精确到0.001秒
发表于 2004-5-27 11:57:45 | 显示全部楼层
这样:

  1. a=$(date +%N);command;b=$(date +%N);echo "scale=3;$((b-a))/1000000000"|bc -l
复制代码
发表于 2004-5-27 12:04:09 | 显示全部楼层
最初由 rosbur 发表
dearvoid的方法用的是time,可是也不行啊。执行后time.out里没有内容。请问还可以怎么做吗?我想精确到0.001秒
sorry, 前面已经修改了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表