我正在编写一个脚本,该格式以YYYMMDD格式作为输入:
#!/bin/bash
check_dir () {
d1=$2
d2=$((d1+1))
f1=`mktemp`
f2=`mktemp`
touch -d $d1 $f1
touch -d $d2 $f2
n=$(find $1 -mindepth 1 \( -name "*$d1*" \) -o \( -newer $f1 ! -newer $f2 \) | wc -l)
if [ $n != $3 ]; then echo $1 "=" $n ; fi
rm -f $f1 $f2
}
在此脚本中,d2=$((d1+1))
计算从提供日期开始的第二天的日期,即d1。但是,如果日期是20151231,那么它将无法处理这种情况。有谁可以帮我解决如何处理这个异常?
gdate在我的平台上不起作用!!
答案 0 :(得分:1)
使用GNU coreutils的date
版本(即在Linux中使用):
$ date -d '20151231 +1 day' +'%Y%m%d'
20160101