我有一个YYYYYMMDDHHMMSS格式的时间戳变量。使用这个变量我需要继续检查循环是否超过1小时。
该变量实际上采用的格式为123-20150925084520
,我需要将第二部分提取为时间戳,然后与当前时间戳进行比较以查看小时数。像datediff($date1,$date2,"h")
这是我尝试过的。登录PUTTY并在 username @ host:[ahome / username] $在SOPOst
下面尝试过$ echo $(( ( $(date -ud '2003-08-02 17:24:33' +'%h') - $(date -ud '2003-04-21 22:55:02' +'%h') )/60/60/24 )) days
,提供date : illegal option --d
我没看到-d选项,但我删除了-ud并尝试过。给出date: bad conversion
其他选项正在实现10秒代码行中的复杂逻辑。像我这样的unix新手需要几天才能理解逻辑。任何快速帮助将不胜感激。
答案 0 :(得分:1)
这是一个简单的解决方案。
$STARTTIME=20150925061225
ENDTIME=$(date '+%Y%m%d%H%M%S') #20150925090000
TIMEDIFF=`expr $ENDTIME - $STARTTIME`
echo $TIMEDIFF # returns 28775(2 hours)
if [ TIMEDIFF -gt 50000 ]; # Is diff. Greater than 5 hours?