回 帖 发 新 帖 刷新版面

主题:shell高手请进.急

哪位大虾能帮帮忙,功能实现显示从当前月份往前追溯4个月
例如现在是2006年2月,运行脚本的效果要显示:
200511
200512
200601
200602
在线等待,感激不尽,满分支持.急!!!!!!!!

回复列表 (共5个回复)

沙发

#!/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
办法比较笨,请拍砖。

板凳

不错,谢谢大虾,大家支持呀!!!!!!

3 楼

大虾,好象不行呀,是要跨年显示,这个好像不行呀,跨年显示不了呀!

4 楼

是否支持date -d
支持可用:
date -d '4 month ago'

5 楼

#!/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

我来回复

您尚未登录,请登录后再回复。点此登录或注册