Problème boucle if en shell
sajodia
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,
bonjour,
j'ai récupérer la valeur du mois dans un fichier(vMois) et je veux tester cette valeur en utilisant une boucle if voila ce que j'ai fait mais ça ne marche pas
minute=`date +%M`
heure=`date +%H`
jour=`date +%d`
#mois=`date +%m`
#an=`date +%Y`
an=2008
mois=janvier
nomfich=/tooto/mimi/defi/Hrt/$an/$mois/Tom
ligne=$(sed -n "2p" $nomfich)
vAnnee=$(echo $ligne | cut -c6-9)
vMois=$(echo $ligne | cut -c10-11)
if [ $vMois = 01 or 03 or 05 or 07 or 08 or 10 or 12 ]
then
vDatefin="31/$vMois/$vAnnee"
echo "Datefin : $vDatefin"
elif [ $vMois = 02 ]
then
vDatefin="28/$vMois/$vAnnee"
echo "Datefin : $vDatefin"
elif [ $vMois = 04 or 06 or 09 or 11 ]
then
vDatefin="30/$vMois/$vAnnee"
echo "Datefin : $vDatefin"
fi
Merci de m'aider.
bonjour,
j'ai récupérer la valeur du mois dans un fichier(vMois) et je veux tester cette valeur en utilisant une boucle if voila ce que j'ai fait mais ça ne marche pas
minute=`date +%M`
heure=`date +%H`
jour=`date +%d`
#mois=`date +%m`
#an=`date +%Y`
an=2008
mois=janvier
nomfich=/tooto/mimi/defi/Hrt/$an/$mois/Tom
ligne=$(sed -n "2p" $nomfich)
vAnnee=$(echo $ligne | cut -c6-9)
vMois=$(echo $ligne | cut -c10-11)
if [ $vMois = 01 or 03 or 05 or 07 or 08 or 10 or 12 ]
then
vDatefin="31/$vMois/$vAnnee"
echo "Datefin : $vDatefin"
elif [ $vMois = 02 ]
then
vDatefin="28/$vMois/$vAnnee"
echo "Datefin : $vDatefin"
elif [ $vMois = 04 or 06 or 09 or 11 ]
then
vDatefin="30/$vMois/$vAnnee"
echo "Datefin : $vDatefin"
fi
Merci de m'aider.
A voir également:
- Problème boucle if en shell
- Classic shell - Télécharger - Personnalisation
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Télé samsung s'éteint et se rallume en boucle - Forum Téléviseurs
- Classic shell c'est quoi ✓ - Forum Windows 10
- Shell addition ✓ - Forum Shell
1 réponse
Salut,
Tu devrais partir sur un "case ... esac" plutôt que sur une boucle "if...then...elif...then...else...fi" :
Tu devrais partir sur un "case ... esac" plutôt que sur une boucle "if...then...elif...then...else...fi" :
#! /bin/bash
echo "Entrez un chiffre entre 01 et 20"
read chiffre
case "$chiffre" in
0[13578]|1[02]) echo "Mois de 31 jours"
;;
0[469]|11) echo "Mois de 30 jours"
;;
02) echo "Mois bissextile"
;;
*) echo "Erreur"
;;
esac;-))