当前位置: 技术问答>linux和unix
sh一问,很简单的,第一次来。100分当散分了
来源: 互联网 发布时间:2014-12-26
本文导语: FILENAME=`date +%y%m%d.dmp`可以得到当前的年年月月日日 我如果想得到在当前月前两个月 比如现在是 020101(一月) 那么我想得到的是 011101(去年11月) 该怎么办 | date -d "2 months ago" +%y%m%d...
FILENAME=`date +%y%m%d.dmp`可以得到当前的年年月月日日
我如果想得到在当前月前两个月
比如现在是 020101(一月)
那么我想得到的是 011101(去年11月)
该怎么办
我如果想得到在当前月前两个月
比如现在是 020101(一月)
那么我想得到的是 011101(去年11月)
该怎么办
|
date -d "2 months ago" +%y%m%d.dmp
即可
即可
|
#!/bin/bash
YEAR=`date +%y`
MONTH=2#`date +%m`
DAY=`date +%d`
MONTH=$(($MONTH - 2))
if [ "$MONTH" -le 0 ];
then
MONTH=$(($MONTH + 12))
YEAR=$(($YEAR - 1))
if [ "$YEAR" -lt 0 ];
then
YEAR=$(($YEAR + 99))
fi
fi
if [ "$YEAR" -lt 10 ];
then
YEAR="0$YEAR"
fi
if [ "$MONTH" -lt 10 ];
then
MONTH="0$MONTH"
fi
DATE="$YEAR$MONTH$DAY"
echo $DATE
~
YEAR=`date +%y`
MONTH=2#`date +%m`
DAY=`date +%d`
MONTH=$(($MONTH - 2))
if [ "$MONTH" -le 0 ];
then
MONTH=$(($MONTH + 12))
YEAR=$(($YEAR - 1))
if [ "$YEAR" -lt 0 ];
then
YEAR=$(($YEAR + 99))
fi
fi
if [ "$YEAR" -lt 10 ];
then
YEAR="0$YEAR"
fi
if [ "$MONTH" -lt 10 ];
then
MONTH="0$MONTH"
fi
DATE="$YEAR$MONTH$DAY"
echo $DATE
~
|
看我的script
==========
#!/bin/ksh
Y=$(date +%y)
M=$(date +%m)
D=$(date +%d)
if [[ $M -le 2 ]]
then
let M=$M+12
if [[ $Y -eq 0 ]] then
let Y=$Y+100
fi
fi
let M=$M-2
if [[ $M -lt 10 ]] then
M="0$M"
fi
let Y=$Y-1
if [[ $Y -lt 10 ]] then
Y="0$Y"
fi
echo "$Y$M$D"
==========
#!/bin/ksh
Y=$(date +%y)
M=$(date +%m)
D=$(date +%d)
if [[ $M -le 2 ]]
then
let M=$M+12
if [[ $Y -eq 0 ]] then
let Y=$Y+100
fi
fi
let M=$M-2
if [[ $M -lt 10 ]] then
M="0$M"
fi
let Y=$Y-1
if [[ $Y -lt 10 ]] then
Y="0$Y"
fi
echo "$Y$M$D"