主题:shell高手请进.急
lloveyou
[专家分:0] 发布于 2005-12-29 16:55:00
哪位大虾能帮帮忙,功能实现显示从当前月份往前追溯4个月
例如现在是2006年2月,运行脚本的效果要显示:
200511
200512
200601
200602
在线等待,感激不尽,满分支持.急!!!!!!!!
回复列表 (共5个回复)
沙发
altman [专家分:30] 发布于 2005-12-29 23:26:00
#!/bin/sh
yf=`date '+%m'`
nf=`date '+%Y'`
case $yf in
1) syn=`expr $nf - 1`
yf1=12
yf2=11
yf3=10
echo $syn$yf3
echo $syn$yf2
echo $syn$yf1
echo $nf$yf
;;
2) syn=`expr $nf - 1`
yf1=`expr $yf - 1`
yf2=12
yf3=11
echo $syn$yf3
echo $syn$yf2
echo $nf$yf1
echo $nf$yf
;;
3) syn=`expr $nf - 1`
yf1=`expr $yf - 1`
yf2=`expr $yf - 2`
yf3=12
echo $syn$yf3
echo $nf$yf2
echo $nf$yf1
echo $nf$yf
;;
*) yf1=`expr $yf - 1`
yf2=`expr $yf - 2`
yf3=`expr $yf - 3`
echo $nf$yf3
echo $nf$yf2
echo $nf$yf1
echo $nf$yf
;;
esca
办法比较笨,请拍砖。
板凳
lloveyou [专家分:0] 发布于 2005-12-30 09:29:00
不错,谢谢大虾,大家支持呀!!!!!!
3 楼
lloveyou [专家分:0] 发布于 2005-12-30 14:23:00
大虾,好象不行呀,是要跨年显示,这个好像不行呀,跨年显示不了呀!
4 楼
梦随风 [专家分:450] 发布于 2006-02-14 10:59:00
是否支持date -d
支持可用:
date -d '4 month ago'
5 楼
zhaoning2612 [专家分:0] 发布于 2007-04-27 16:34:00
#!/bin/bash
curyear=`date +%Y`
curmonth=`date +%m`
dispyear=
dispmonth=
temp=
for i in 3 2 1 0
do
let temp=$curmonth-$i
if [ $temp -le 0 ]
then
let dispyear=$curyear-1
let dispmonth=$curmonth+12-$i
else
let dispyear=$curyear
let dispmonth=$curmonth-$i
fi
echo ${dispyear}$dispmonth
done
我来回复