contatore free

solutioncafe IT

Il System Architect è il punto di unione tra IT, processi aziendali e esigenze del cliente

nov
2008
24

Dopo 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
Tag:

I commenti sono chiusi.

Banner