Le plus simple que je connaisse est d'utiliser PERL, qui est normalement installé sur ta machine/serveur (c'est de plus en plus standard... faut croiser les doigts) :
En ksh :
hier=`perl -e '($s,$m,$h,$J,$M,$A) = localtime(time - 24*60*60) and printf("%04d%02d%02d\n", $A+1900,$M+1,$J)'`
echo $hier |
Principe : on prend la date en nombre de seconde (fonction "time" ), on enlève le nombre de secondes d'une journée (24 heures * 60 minutes * 60 secondes), on convertit ça en une suite de variables utilisables (localtime nous donne, dans l'ordre : secondes, minutes, heures, jours, mois, années), et on l'affiche avec printf() en formaté.
Le tout sur une seule ligne.
En script-shell pur, je ne connais pas de bon moyen de parvenir à ce résultat aussi facilement.
Message édité par Elmoricq le 09-05-2006 à 13:46:18