0

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

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

但是我不断收到错误消息:

   1394661620440271000/1000000: No such file or directory

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

4

4 回答 4

2

假设您使用的是 bash:

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

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

于 2014-03-12T22:14:33.983 回答
2

我认为您想要以下内容:

START=$(($(date +%s%N)/1000000))
于 2014-03-12T22:14:46.027 回答
1

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

$ start=$(date '+%s%N')
$ echo $start
1394663274979099354
$ echo ${start:0:-6}
1394663274979
于 2014-03-12T22:29:57.707 回答
0

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

printf "%0.3f\n" $(date +%s.%N)
于 2014-03-13T03:36:26.680 回答