应用背景:我们经常会需要根据当前日期来产生所需要的文件名,或者产生10天内的文件,而这个文件名就是与日期有关的。
看下面的例子:
[zcm@bash #48]$cat dateoper.sh
#!/bin/bash
today=`date +%Y%m%d`
filename="pre_"$today"_tail.txt"
echo $today
echo $filename
echon=5
if [ $# -eq 1 ]; thenlet n=$1
fi
bak=$n #备份n的值echo "计算$n天前的文件名:"
while [ $n -gt 0 ]
do
# temp=`date --date="$n day ago" +%Y%m%d`temp=`date --date="$n days ago" +%Y%m%d`filename="pre_"$temp"_tail.txt"echo $filenamelet n=n-1
done
echolet n=bak #恢复到n的原始值
echo "计算$n天后的文件名:"
while [ $n -gt 0 ]
dotemp=`date --date="$n day" +%Y%m%d`
# temp=`date --date="$n days" +%Y%m%d`filename="pre_"$temp"_tail.txt"echo $filenamelet n=n-1
done
echo
[zcm@bash #49]$
看看运行结果:
[zcm@bash #49]$./dateoper.sh
20111129
pre_20111129_tail.txt计算5天前的文件名:
pre_20111124_tail.txt
pre_20111125_tail.txt
pre_20111126_tail.txt
pre_20111127_tail.txt
pre_20111128_tail.txt计算5天后的文件名:
pre_20111204_tail.txt
pre_20111203_tail.txt
pre_20111202_tail.txt
pre_20111201_tail.txt
pre_20111130_tail.txt[zcm@bash #50]$./dateoper.sh 3
20111129
pre_20111129_tail.txt计算3天前的文件名:
pre_20111126_tail.txt
pre_20111127_tail.txt
pre_20111128_tail.txt计算3天后的文件名:
pre_20111202_tail.txt
pre_20111201_tail.txt
pre_20111130_tail.txt[zcm@bash #51]$