我在shell脚本中运行此命令以获取时间(以毫秒为单位):
START=`$(date +%s%N)/1000000`
但是我一直收到错误:
1394661620440271000/1000000: No such file or directory
我尝试通过添加括号,额外的美元符号来更改代码,但我不断遇到不同类型的错误。我该如何修复代码?任何人都可以帮忙吗?
答案 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)