Re: script fejler efter indgang i november

From: Claus Guttesen (none@kometen--gmail.com.lh.bsd-dk.dk)
Date: Mon 03 Nov 2008 - 11:02:33 CET


Date: Mon, 3 Nov 2008 11:02:33 +0100
From: "Claus Guttesen" <none@kometen--gmail.com.lh.bsd-dk.dk>
To: bsd-dk@bsd-dk.dk
Subject: Re: script fejler efter indgang i november


>>> Jeg har et script der finder den sidste dag i måneden, da jeg har nogle
>>> ting jeg gerne vil ha tjekket der, men efter vi er tråd ind i november
>>> måned, så fejler det pludselig.
>>>
>>> Det er date -v-1d -jf%Y-%m-%d der fejler, men kan ik gennemskue hvorfor
>>> og
>>> hvad det har med november måned at gøre.
>>>
>>> MONTH=`date "+%m"`
>>> EBBE=`date -v-1d -jf%Y-%m-%d $(date +%Y-$((($MONTH+1)%12))-01) +%d`
>>> DATO=`date "+%d"`
>>> if [ $DATO = $EBBE ]; then
>>> maanedok
>>> fi
>>
>> Dit problem skyldes at november (11) + 1%12 giver 0, dvs date +%Y-0-01,
>> hvilket
>> fejler som input til din date.
>>
>> Jeg er langt fra ekspert i date, men tilsyneladende ville
>> EBBE=`date -v1d -v+1m -v-1d '+%d'`
>>
>> give det rigtige resultat, uden problemer med modulus.
>>
>
> Dejligt, det prøver jeg da bare ;)
>
> Men hvis jeg paster "date -v-1d -jf%Y-%m-%d", så får jeg også en fejl... ?

'man date'

     The command:

           date -v1d -v3m -v0y -v-1d

     will display the last day of February in the year 2000:

Alternativt kan du tage måned i dag og måned i morgen, og hvis de er
forskellige så kører du dit script:

m1=`date '+%m'`
m2"`date -v+1d '+%m'

if [ ${m1} -ne ${m2} ]; then
  dit script
fi

-- 
regards
Claus

When lenity and cruelty play for a kingdom, the gentler gamester is the soonest winner.

Shakespeare



This archive was generated by hypermail 2b30 : Sun 30 Nov 2008 - 23:00:02 CET