J'ai envie d'afficher les dates des 100 derniers jours dans un format bien précis. Pour ce qui est du format c'est bon, j'ai trouvé (man date). Par contre je n'ai pas réussi à scripter la récursivité. Voila ce que j'ai essayé et qui me parraissait bon :
for i in $(seq 1 100); do
date +"%d%m%Y" --date '($i) days ago';
done
Ce qui me donne 100 fois la date d'hier !Si je fais
for i in $(seq 1 100); do
echo $i;
done
j'ai bien les chiffres 1 à 100 qui s'affichent.Il y a donc quelque-chose qui m'échappe : si ça fonctionne avec echo, pourquoi ça ne fonctionnerai pas avec date ? Et comment je fais moi maintenant pour avoir mes 100 dates sans avoir à les taper une à une à la mimine ?
--
Rénald.
# -d "string"
Posté par et_pourtant . Évalué à 4.
for i in $(seq 1 100); do
date +"%d%m%Y" --date "$i days ago";
done
# C'est simple
Posté par Physche . Évalué à 8.
[^] # Re: C'est simple
Posté par mc_arnaud . Évalué à 1.
Merci pour votre aide en tout cas.
--
Rénald
# Récursivité
Posté par Kerro . Évalué à 2.
Juste un mot sur la récursivité: ce n'est qu'une boucle, pas de récursivité :-)
[^] # Re: Récursivité
Posté par mc_arnaud . Évalué à 1.
--
Rénald
[^] # Re: Récursivité
Posté par Maxime (site web personnel) . Évalué à 3.
#!/bin/sh
aff_date()
{
if [ $1 -gt 0 ]; then
aff_date `expr $1 - 1`;
date +"%d%m%Y" --date "$1 days ago";
fi
}
aff_date 100;
[^] # Joli !
Posté par Kerro . Évalué à 2.
Dans ton cas, on "empile" les appels avant d'afficher. En cas de blocage quelque part, on ne voit rien. En inversant les deux lignes, on affiche chaque fois qu'on fait un pas de plus dans la récursivité.
[^] # Re: Joli !
Posté par Maxime (site web personnel) . Évalué à 2.
[^] # Re: Joli !
Posté par Maxime (site web personnel) . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.