我正在编写一个shell脚本,其中我有一个变量t_1 = "10:51:45"
,我想找到这个时间(假设这总是在过去)和当前时间之间的时差
i tried doing this
curr_time=`date | cut -d " " -f 5`
A1=`date +%H:%M:%S -d $t_1`
C1=`date +%H:%M:%S -d $curr_time`
echo "$((C1 - A1))"
get below error (curr_time = 23:10:03)
表达式语法错误(错误标记为":10:03 - 10:51:45")
t_1="10:51:45"
curr_time=`date | cut -d " " -f 5`
A1=`date +%s -d $t_1`
C1=`date +%s -d $curr_time`
echo "${C1} : ${A1}"
echo "$((C1 - A1))"
需要将日期转换为epoch格式。这可以在GNU awk中完成:
awk -v etim="2021 02 08 23 27 00" '{ print strftime("%c",mktime(etim)-strftime("%s"),1) }' <<< /dev/null
使用awk的mktime和strftime函数将日期转换为epoch格式,并输出两者之间的差值,例如"2021/02/08 23:27:00";现在是locale格式。可以通过更改"%c">
来更改格式。