据我所知,bash 变量没有特定的类型。
我的问题是,我需要将时间戳(始终采用格式:)转换为hh:mm:ss
表示秒的单个整数。
因此,我将hh
,mm
和ss
部分切成单独的字符串并用于expr
计算秒整数,例如:
TIME=expr $HH \* 3600 + $MM \* 60 + $SS
Run Code Online (Sandbox Code Playgroud)
但是当 eg $HH=00
then expr 将不起作用。是否有可能将字符串转换像00
或01
为整数?
试试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
。