在bash中将时间戳转换为秒

Mar*_*kus 7 bash

据我所知,bash 变量没有特定的类型。

我的问题是,我需要将时间戳(始终采用格式:)转换为hh:mm:ss表示秒的单个整数。

因此,我将hh,mmss部分切成单独的字符串并用于expr计算秒整数,例如:

TIME=expr $HH \* 3600 + $MM \* 60 + $SS
Run Code Online (Sandbox Code Playgroud)

但是当 eg $HH=00then expr 将不起作用。是否有可能将字符串转换像0001为整数?

Rad*_*anu 6

试试awk。例如:

echo "00:20:40" | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }'
Run Code Online (Sandbox Code Playgroud)

所以,如果你有:

time="00:20:40"
Run Code Online (Sandbox Code Playgroud)

然后:

seconds=$(echo $time | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }')
Run Code Online (Sandbox Code Playgroud)

echo $seconds将打印1240