Archiv verlassen und diese Seite im Standarddesign anzeigen : Date funktion, letzter Tag im Monat?
Hi Leute
Ich müsste in einem Backupskript (bash), eine funktion haben um festzustellen ob der gegenwärtige Tag der Letzte des aktuellen Monats ist. Gibt es da eine möglichkeit von Date oder wie macht man sowas am schlausten?
$emperf!
Hi Leut
Das gibt jeweils den letzen Tag vom Vormonat (Zahl um eins
erhoehen fuer den aktuellen also z.B. -v11m)
, date -v1d -v9m -v-1d
Sun Aug 31 19:37:26 MEST 2008
, date -v1d -v8m -v-1d
Thu Jul 31 19:37:34 MEST 2008
also musst du nur noch den aktuellen Tag dagegen checken.
(2 Variablen)
Alternativ checkst du bei der letzen Zeile von cal das letzte Argument.
Gruss
403
Aber das geht sicher noch einfacher ;)
Der Monat von heute ist nicht gleich dem Monat von gestern:
if [ $(( $( date +%m ) - $( date +%m -d yesterday ) )) -ne 0 ] ; then
echo "yap"
fi
...auch das geht sicher einfacher? :D
Gruß
L00NIX
Ob
if [ $(date +%d) -eq $(echo `cal` | awk '{print $NF}') ] ; then
echo "letzter"
fi
einfacher ist, darüber kann man streiten ...
das artet ja noch zum coding contest aus :)
versuche gerad auf eigene faust den code für den letzten tag des jahres zu basteln. falls jemand diesbezüglich auch etwas auf lager hat dann immer her damit... sonst melde ich mich spätestens falls ich es nicht selber hinkriege :ugly:
$emp!
Wie wärs mit
if [ $(date +%j) -ge 365 ]; then
...
fi
Ein STFW brachte noch folgendes als Funktion der bash (sehr praktisch :)
lastday() ## USAGE: lastday MM [YEAR]
{
case ${1#0} in
9|4|6|11) echo 30 ;; ## 30 days hath September...
1|3|5|7|8|10|12) echo 31 ;;
2) is_leap_year ${2:-`date +%Y`} && echo 29 || echo 28 ;;
*) return 5 ;;
esac
}
is_leap_year() {
[ $(( $1 % 4 )) -eq 0 ] &&
[ $(( $1 % 100 )) -ne 0 ] ||
[ $(( $1 % 400 )) -eq 0 ]
}
Mist jetzt bin ich zu frueh auf den Antworten Button gekommen :-P
Gruss
403
das artet ja noch zum coding contest aus :)
versuche gerad auf eigene faust den code für den letzten tag des jahres zu basteln.
Nur eine Variation des Themas, insofern muss bei meinem obigen Skript lediglich das %m durch %Y getauscht werden. ;)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.