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 ClausWhen 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