使用08/09检查任何日期字段时发出

时间:2019-03-12 12:06:55

标签: bash shell

我有以下代码以mm:ss格式计算时间差。但是,如果我具有08/09之类的值,则它不起作用。我通过添加#10看到了几个斑点,它可以解决,但是对我来说不起作用。谁能帮忙。

#!/bin/bash
start_ts=04:24:07
stop_ts=04:24:09
ts_get_sec()
{
  read -r h m s <<< $(echo 10#$1 | tr ':' ' ' )
  echo $(((h*60*60)+(m*60)+s))
}
START=$(ts_get_sec $start_ts)
STOP=$(ts_get_sec $stop_ts)
DIFF=$((STOP-START))
echo "$((DIFF/60)):$((DIFF%60))"

我得到的错误:

  

该值对于基数太大(错误令牌为“ 09”)

请从语法上建议我是否正确。

1 个答案:

答案 0 :(得分:0)

从分割后的h m和s中删除前导空白:

Test B
Test A
Test C