1394661620440271000/1000000:没有这样的文件或目录

时间:2014-03-12 22:10:09

标签: shell date milliseconds elapsedtime

我在shell脚本中运行此命令以获取时间(以毫秒为单位):

    START=`$(date +%s%N)/1000000`

但是我一直收到错误:

   1394661620440271000/1000000: No such file or directory

我尝试通过添加括号,额外的美元符号来更改代码,但我不断遇到不同类型的错误。我该如何修复代码?任何人都可以帮忙吗?

4 个答案:

答案 0 :(得分:2)

假设您正在使用bash:

START=$(( $(date '+%s%N') / 1000000 ))

你不能在命令行上说/来划分数字。 ((...))在bash中进行算术评估。

答案 1 :(得分:2)

我想你想要以下内容:

START=$(($(date +%s%N)/1000000))

答案 2 :(得分:1)

您也可以使用纯字符串操作:

$ start=$(date '+%s%N')
$ echo $start
1394663274979099354
$ echo ${start:0:-6}
1394663274979

答案 3 :(得分:0)

printf语句可以将值舍入到最接近的毫秒:

printf "%0.3f\n" $(date +%s.%N)