Aide sur la commande IF sous ubuntu
Résolu
karirovax
Messages postés
3221
Date d'inscription
Statut
Membre
Dernière intervention
-
karirovax Messages postés 3221 Date d'inscription Statut Membre Dernière intervention -
karirovax Messages postés 3221 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un petit prb avec la commande IF , malgrés plusieurs manip avec comme : IF [$var1 -eq $var2] ; then ...; fi
donc je vous donne mon code , s'il ya aussi d'autre manip , je suis preneur ;)
voici mon code en bash :
#!/bin/bash
echo
echo
echo CE programme permet de trouver
echo
echo votre jour de naissance
echo
echo
echo ------------------------------------------------------------------
echo janvier fevrier mars avril mai juin juillet août sept oct nov dec
echo ------------------------------------------------------------------
echo 0 3 3 6 1 4 6 2 5 0 3 5
echo ------------------------------------------------------------------
echo
echo ----------------------------
echo dim lun mar mer jeu ven sam
echo ----------------------------
echo 0 1 2 3 4 5 6
echo ----------------------------
echo
echo
echo Tappez votre jour de naissance :
echo
read jour
if [ "$jour" -gt "31" ] ; then echo " Vous devez choisir un nombre inferieur ou égale a 31"
echo " car ( $jour est superieur a 31 )"
read jours
elif [ "$jour" -le "0" ] ; then echo " Vous devez choisir un nombre superrieur ou égale a 1"
echo " car ( $jour est inferieur a 1 )"
read jours
else
echo
echo Jour de naissance : $jour
echo
fi
echo
echo Tappez votre mois de naissance :
echo
read mois
if [ $mois -gt "12" ] ; then echo " Vous devez choisir un nombre inferieur ou égale a 12"
echo " car ( $mois est superieur a 12 )"
read mois
elif [ $mois -le "0" ] ; then echo " Vous devez choisir un nombre superrieur ou égale a 1"
read mois
echo " car ( $mois est inferieur a 1 )"
else
echo
echo Mois de naissance : $mois
echo
fi
echo
echo Tappez votre année de naissance "en 4 chiffres Ex : 1900 ":
echo
read annee
echo ${annee}-"1900"
#date +%e &&date +%A &&date +%B &&date +%G
if zenity --calendar \
--title="confirmer la date de votre jour de naissance" \
--text="Cliquez sur votre date pour la confirmer." \
--day=$jour --month=$mois --year=$annee
then echo $?
else echo "Aucune date sélectionnée"
fi
if test $jours -eq 'date +%B' ; then
if test $0$mois -eq 'date +%m' ; then
echo "bonne année versaire !"
fi
fi
SVP et merci
karirovax ;)
j'ai un petit prb avec la commande IF , malgrés plusieurs manip avec comme : IF [$var1 -eq $var2] ; then ...; fi
donc je vous donne mon code , s'il ya aussi d'autre manip , je suis preneur ;)
voici mon code en bash :
#!/bin/bash
echo
echo
echo CE programme permet de trouver
echo
echo votre jour de naissance
echo
echo
echo ------------------------------------------------------------------
echo janvier fevrier mars avril mai juin juillet août sept oct nov dec
echo ------------------------------------------------------------------
echo 0 3 3 6 1 4 6 2 5 0 3 5
echo ------------------------------------------------------------------
echo
echo ----------------------------
echo dim lun mar mer jeu ven sam
echo ----------------------------
echo 0 1 2 3 4 5 6
echo ----------------------------
echo
echo
echo Tappez votre jour de naissance :
echo
read jour
if [ "$jour" -gt "31" ] ; then echo " Vous devez choisir un nombre inferieur ou égale a 31"
echo " car ( $jour est superieur a 31 )"
read jours
elif [ "$jour" -le "0" ] ; then echo " Vous devez choisir un nombre superrieur ou égale a 1"
echo " car ( $jour est inferieur a 1 )"
read jours
else
echo
echo Jour de naissance : $jour
echo
fi
echo
echo Tappez votre mois de naissance :
echo
read mois
if [ $mois -gt "12" ] ; then echo " Vous devez choisir un nombre inferieur ou égale a 12"
echo " car ( $mois est superieur a 12 )"
read mois
elif [ $mois -le "0" ] ; then echo " Vous devez choisir un nombre superrieur ou égale a 1"
read mois
echo " car ( $mois est inferieur a 1 )"
else
echo
echo Mois de naissance : $mois
echo
fi
echo
echo Tappez votre année de naissance "en 4 chiffres Ex : 1900 ":
echo
read annee
echo ${annee}-"1900"
#date +%e &&date +%A &&date +%B &&date +%G
if zenity --calendar \
--title="confirmer la date de votre jour de naissance" \
--text="Cliquez sur votre date pour la confirmer." \
--day=$jour --month=$mois --year=$annee
then echo $?
else echo "Aucune date sélectionnée"
fi
if test $jours -eq 'date +%B' ; then
if test $0$mois -eq 'date +%m' ; then
echo "bonne année versaire !"
fi
fi
SVP et merci
karirovax ;)
A voir également:
- Aide sur la commande IF sous ubuntu
- Invite de commande - Guide
- Commande terminal mac - Guide
- Ubuntu 32 bits - Télécharger - Systèmes d'exploitation
- Commande dism - Guide
- Diskpart commande - Guide
3 réponses
Salut,
Tu as fait une erreur de frappe, ce n'est pas jours mais jour le nom de ta variable
Et puis vu que tu testes le jour alors %B te donne le mois et ton test ne peux pas fonctionner
N'oublie pas non plus que le jour est sur deux chiffre, donc soit tu saisie 0d soit tu utilises un sprintf
Exécution
Tu as fait une erreur de frappe, ce n'est pas jours mais jour le nom de ta variable
Et puis vu que tu testes le jour alors %B te donne le mois et ton test ne peux pas fonctionner
man date %B nom complet, conformément aux paramètres régionaux, des mois (janvier.décembre)
N'oublie pas non plus que le jour est sur deux chiffre, donc soit tu saisie 0d soit tu utilises un sprintf
lami20j@debian-acer:~$ cat test.sh #!/bin/bash echo echo echo CE programme permet de trouver echo echo votre jour de naissance echo echo echo ------------------------------------------------------------------ echo janvier fevrier mars avril mai juin juillet août sept oct nov dec echo ------------------------------------------------------------------ echo 0 3 3 6 1 4 6 2 5 0 3 5 echo ------------------------------------------------------------------ echo echo ---------------------------- echo dim lun mar mer jeu ven sam echo ---------------------------- echo 0 1 2 3 4 5 6 echo ---------------------------- echo echo echo Tappez votre jour de naissance : echo read jour if [ "$jour" -gt "31" ] ; then echo " Vous devez choisir un nombre inferieur ou égale a 31" echo " car ( $jour est superieur a 31 )" read jour elif [ "$jour" -le "0" ] ; then echo " Vous devez choisir un nombre superrieur ou égale a 1" echo " car ( $jour est inferieur a 1 )" read jour else echo echo Jour de naissance : $jour echo fi echo echo Tappez votre mois de naissance : echo read mois if [ $mois -gt "12" ] ; then echo " Vous devez choisir un nombre inferieur ou égale a 12" echo " car ( $mois est superieur a 12 )" read mois elif [ $mois -le "0" ] ; then echo " Vous devez choisir un nombre superrieur ou égale a 1" read mois echo " car ( $mois est inferieur a 1 )" else echo echo Mois de naissance : $mois echo fi echo echo Tappez votre année de naissance "en 4 chiffres Ex : 1900 ": echo read annee echo ${annee}-"1900" #date +%e &&date +%A &&date +%B &&date +%G if zenity --calendar \ --title="confirmer la date de votre jour de naissance" \ --text="Cliquez sur votre date pour la confirmer." \ --day=$jour --month=$mois --year=$annee then echo $? else echo "Aucune date sélectionnée" fi if test $jour -eq $(date +%d) ; then if test $mois -eq $(date +%m) ; then echo "bonne année versaire !" fi fi
Exécution
lami20j@debian-acer:~$ sh test.sh CE programme permet de trouver votre jour de naissance ------------------------------------------------------------------ janvier fevrier mars avril mai juin juillet août sept oct nov dec ------------------------------------------------------------------ 0 3 3 6 1 4 6 2 5 0 3 5 ------------------------------------------------------------------ ---------------------------- dim lun mar mer jeu ven sam ---------------------------- 0 1 2 3 4 5 6 ---------------------------- Tappez votre jour de naissance : 25 Jour de naissance : 25 Tappez votre mois de naissance : 07 Mois de naissance : 07 Tappez votre année de naissance en 4 chiffres Ex : 1900 : 1900 1900-1900 25/07/1900 0 bonne année versaire !
merci beaucoup , ça marche , un grand merci ;)