在我正在处理的脚本中,用户定义了一个标记为开始时间的变量。我想将该变量递增和递减±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 Operators和Incrementing time (minutes and seconds) in bash / shell script。任何援助将不胜感激。
答案 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')