Comparaison de dates avec if imbriqués
enissai
-
enissai Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
enissai Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Comme cela paraît évident, j'ai un petit soucis avec mon script shell. Ma commande catégorie doit renvoyer la catégorie à laquelle on appartient selon la date de naissance entrée après le nom de la commande,
ex: categorie 1986 renvoie Seniors.
Pour cela j'ai choisi de procéder par intervalle avec des "if" imbriqués, mais mon paramètre reste dans le premier "if", la variable n'est pas incrémentée, et quand je fais un echo dans le second "if", il est passé sous silence.
Voici mon programme:
#!/bin/bash
if test $# -eq 0
then echo il n'existe aucun parametres, veuillez taper le nom de la commande suivi de l'année aaaa.
fi
if [ "$1" -le "1969" ]
then
cat=$Veterans
fi
echo $1
if [ "$1" -le "1986" ] && [ "$1" -ge "1970" ]
then
cat=$Seniors
fi
if [ "$1" -le "1989" ] && [ "$1" -ge "1987" ]
then
cat=$Espoirs
fi
if [ "$1" -le "1991" ] && [ "$1" -ge "1990" ]
then
cat=$Juniors
fi
if [ "$1" -le "1993" ] && [ "$1" -ge "1992" ]
then
cat=$Cadets
fi
if [ "$1" -le "1995" ] && [ "$1" -ge "1994" ]
then
cat=$Minimes
fi
if [ "$1" -le "1997" ] && [ "$1" -ge "1996" ]
then
cat=$Benjamins
fi
if [ "$1" -le "1999" ] && [ "$1" -ge "1998" ]
then
cat=$Poussins
fi
if [ "$1" -ge "2000" ]
then
cat=$Ecole d Atletisme
fi
echo $cat
Donc si je tape "categorie 1969", au llieu de me renvoyer "Veterans", ça ne me renvoie strictement rien!
J'ai essayé de mettre else, elif, de mettre le "fi" uniquement à la fin du programme, ça n'a rien donné. Alors toute aide sera la bienvenue^^.
Merci.
Enissai
Comme cela paraît évident, j'ai un petit soucis avec mon script shell. Ma commande catégorie doit renvoyer la catégorie à laquelle on appartient selon la date de naissance entrée après le nom de la commande,
ex: categorie 1986 renvoie Seniors.
Pour cela j'ai choisi de procéder par intervalle avec des "if" imbriqués, mais mon paramètre reste dans le premier "if", la variable n'est pas incrémentée, et quand je fais un echo dans le second "if", il est passé sous silence.
Voici mon programme:
#!/bin/bash
if test $# -eq 0
then echo il n'existe aucun parametres, veuillez taper le nom de la commande suivi de l'année aaaa.
fi
if [ "$1" -le "1969" ]
then
cat=$Veterans
fi
echo $1
if [ "$1" -le "1986" ] && [ "$1" -ge "1970" ]
then
cat=$Seniors
fi
if [ "$1" -le "1989" ] && [ "$1" -ge "1987" ]
then
cat=$Espoirs
fi
if [ "$1" -le "1991" ] && [ "$1" -ge "1990" ]
then
cat=$Juniors
fi
if [ "$1" -le "1993" ] && [ "$1" -ge "1992" ]
then
cat=$Cadets
fi
if [ "$1" -le "1995" ] && [ "$1" -ge "1994" ]
then
cat=$Minimes
fi
if [ "$1" -le "1997" ] && [ "$1" -ge "1996" ]
then
cat=$Benjamins
fi
if [ "$1" -le "1999" ] && [ "$1" -ge "1998" ]
then
cat=$Poussins
fi
if [ "$1" -ge "2000" ]
then
cat=$Ecole d Atletisme
fi
echo $cat
Donc si je tape "categorie 1969", au llieu de me renvoyer "Veterans", ça ne me renvoie strictement rien!
J'ai essayé de mettre else, elif, de mettre le "fi" uniquement à la fin du programme, ça n'a rien donné. Alors toute aide sera la bienvenue^^.
Merci.
Enissai
A voir également:
- Comparaison de dates avec if imbriqués
- Comparaison million milliard - Accueil - Technologies
- Nombre de jours entre deux dates excel - Guide
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
- Airpods 3 date de sortie - Guide
- Comparaison samsung a15 et a16 - Accueil - Téléphones
2 réponses
Salut,
L'assignation d'une variable se fait comme suit :
ou
mais jamais comme tu l'as fait :
de plus, "cat" est une commande externe. Tu devrais employer autre chose comme nom de variable (CAT à la limite).
L'assignation d'une variable se fait comme suit :
var="blabla"
ou
var=$(commande)
mais jamais comme tu l'as fait :
var=$blabla
de plus, "cat" est une commande externe. Tu devrais employer autre chose comme nom de variable (CAT à la limite).
Merci beaucoup, je me suis finalement rendue compte de mon erreur toute seule, environ 10-15 min après avoir posté le message. Le soucis, c'est que cette façon de faire fonctionne très bien dans un autre script...du coup c'est un mystère pour moi.
Enfin, c'est en tombant qu'on apprend à marcher on va dire.
@+ et encore merci.
Enfin, c'est en tombant qu'on apprend à marcher on va dire.
@+ et encore merci.