nov
2008
24
Sottrarre n giorni dalla data attuale in Linux
lunedì, 24 novembre 2008 at 8:45 - Pubblicato da: in Informatica, ScriptingDopo lo script visto nell’articolo precedente, eccone un altro un pochino più complesso, che restituisce giorno mese e anno retroattivi di un numero arbitrario di giorni rispetto alla data corrente. es. => $ sh subtractdays.sh 90
#!/bin/bash
# Source function library.
. /etc/rc.d/init.d/functions
OFFSET=$1
[ -z $OFFSET ] && OFFSET=0
eval `date "+DAY=%d; MONTH=%m; YEAR=%Y"`
DAY=${DAY#0}
MONTH=${MONTH#0}
if [ -n $OFFSET ] && [ $OFFSET -gt 0 ]
then
for x in `seq 1 $OFFSET`
do
DAY=$((DAY - 1))
if [ $DAY -lt 1 ]
then
MONTH=$((MONTH - 1))
if [ $MONTH -lt 1 ]
then
YEAR=$((YEAR - 1))
MONTH=12
fi
typeset -a DAYS
i=0
for day in `cal $MONTH $YEAR | grep
-vE 'Su|Mo|Tu|We|Th|Fr|Sa|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug
|Sep|Oct|Nov|Dec|$YEAR'`
do
i=`expr $i + 1`
DAYS[i]=$day
done
DAY=$((${DAYS[ ${#DAYS[*]}]}))
unset DAYS[*]
fi
done
fi
[ $DAY -lt 10 ] && DAY=0$DAY
[ $MONTH -lt 10 ] && MONTH=0$MONTH
echo $DAY $MONTH $YEAR
|
