增加用户时间变量Bash

时间:2015-06-02 00:10:19

标签: bash shell

在我正在处理的脚本中,用户定义了一个标记为开始时间的变量。我想将该变量递增和递减±3小时。格式是00:00:00(24小时),我不确定是否有更好的方法不涉及字符串操作,因为如果它小于零我不能传递-03:00:00到Python利用这个变量的脚本。

#somescript.sh 00:01:35    
STARTTIME=$1
E=${STARTTIME%*:}
S=${STARTTIME##*:} && ((S=S+3)
echo "$S : $E"

期望结果:03:01:35和21:01:35

在提出此问题之前已审核:String OperatorsIncrementing time (minutes and seconds) in bash / shell script。任何援助将不胜感激。

1 个答案:

答案 0 :(得分:2)

starttime=$1
endtime=$(date -u -d "$starttime 3 hours" +'%H:%M:%S')
echo "${starttime} - $endtime"

...用作:

$ ./add-time 01:01:35
01:01:35 - 04:01:35

如果您需要向相反方向前进,请添加“之前”一词:

endtime=$(date -u -d "$starttime 3 hours ago" +'%H:%M:%S')