当我获得两个日期值和相减,有时我得到负数:为什么我在bash中的日期差异导致负数?
在这些日期对象之间的工作是做两个阵列之间在SciDB(乘法两个100×100的操作,例如,阵列)。这种操作在不同情况下可能需要不到一秒钟的时间,这就是为什么我使用纳秒。 实施例输出:
[email protected]:~/some-scripts$ ./test_mult_100.sh
execution time was 273467147 s.
[email protected]:~/some-scripts$ ./test_mult_100.sh
execution time was -735035957 s.
我通过SSH经由腻子执行计算机上.SH脚本。我感到奇怪的是,即使在执行中间操作3秒以上后,我也可以获得负数。我取消设置start_time和end_time变量以避免重叠值,尽管我不认为不这样做会导致问题。
可能这些数字对于'expr'来说太大了?积极的结果也是错误的。 – tripleee
我甚至没有考虑过它,但这完全合理。我会尝试将纳秒变为毫秒,然后看看它是否更好。 –
不幸的是,我仍然收到错误。看来$(date -u +%N)部分并不像我想要的那样一致。当我尝试将该值除以1000000(将该值转换为毫秒)时,我不仅偶尔会得到负值,但偶尔会收到错误消息:“对于基准值太大”。我试着这样做的代码: start_time = $(($(date +%N)/ 1000000)) 我想我会尝试一种不使用日期的方法。 –