Bash 以hh:mm:ss.ms格式计算时差 一般的 算例 其他: 不限于24小时 变量_2始终大于变量_1 工作代码

Bash 以hh:mm:ss.ms格式计算时差 一般的 算例 其他: 不限于24小时 变量_2始终大于变量_1 工作代码,bash,Bash,根据答案,这里是正在工作的代码 它做什么 下面发布的代码与上面的示例一样,使用时间格式hh:mm:ss.ms计算两个变量(VARIABLE_1和VARIABLE_2)之间的时间差,并以相同格式(hh:mm:ss.ms)将计算结果保存在变量结果中 要将变量值传递给awk,请使用echo命令并添加$。严格来说,引号不是必需的,但一般来说,最好引用任何变量扩展,以防止空格和通配符被误解 DIFFERENCE_IN_MS=$(( VARIABLE_2_IN_MS - VARIABLE_1_IN_MS )

根据答案,这里是正在工作的代码

它做什么 下面发布的代码与上面的示例一样,使用时间格式hh:mm:ss.ms计算两个变量(
VARIABLE_1
VARIABLE_2
)之间的时间差,并以相同格式(hh:mm:ss.ms)将计算结果保存在变量
结果中

要将变量值传递给awk,请使用echo命令并添加
$
。严格来说,引号不是必需的,但一般来说,最好引用任何变量扩展,以防止空格和通配符被误解

DIFFERENCE_IN_MS=$(( VARIABLE_2_IN_MS - VARIABLE_1_IN_MS ))
应该注意的是,在
$(…)
中的变量引用中省略
$
是可以的,但这是为数不多的情况之一。在正常使用中,您必须具有
$
。例如以下任务:

RESIDUAL_DIFFERENCE_IN_MS=$DIFFERENCE_IN_MS
VARIABLE_1_IN_MS=$(echo "$VARIABLE_1" | awk -F':|.' '{print $1 * 60 * 60 * 1000 + $2 * 60 * 1000 + $3 * 1000 + $4}' )
VARIABLE_2_IN_MS=$(echo "$VARIABLE_2" | awk -F':|.' '{print $1 * 60 * 60 * 1000 + $2 * 60 * 1000 + $3 * 1000 + $4}' )
DIFFERENCE_IN_MS=$(( VARIABLE_2_IN_MS - VARIABLE_1_IN_MS ))
RESIDUAL_DIFFERENCE_IN_MS=$DIFFERENCE_IN_MS