bash日期操作

应用背景:我们经常会需要根据当前日期来产生所需要的文件名,或者产生10天内的文件,而这个文件名就是与日期有关的。


看下面的例子:

[zcm@bash #48]$cat dateoper.sh 
#!/bin/bash
today=`date +%Y%m%d`
filename="pre_"$today"_tail.txt"
echo $today
echo $filename
echo

n=5
if [ $# -eq 1 ]; then
	let 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 $filename
	let n=n-1
done
echo

let n=bak	#恢复到n的原始值
echo "计算$n天后的文件名:"
while [ $n -gt 0 ]
do
	temp=`date --date="$n day" +%Y%m%d`
#	temp=`date --date="$n days" +%Y%m%d`
	filename="pre_"$temp"_tail.txt"
	echo $filename
	let 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]$


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值