Script shell affiche le nombre de jours d'un mois d'une année

Fermé
amdnibrass Messages postés 23 Date d'inscription mercredi 2 octobre 2013 Statut Membre Dernière intervention 28 juillet 2015 - 1 mars 2014 à 11:59
amdnibrass Messages postés 23 Date d'inscription mercredi 2 octobre 2013 Statut Membre Dernière intervention 28 juillet 2015 - 1 mars 2014 à 21:43
Bonjour,
j'ai ecrit ce script et lorsque je fait l'execution en tapant sur le terminal ./jour $1 $2 (jour le nom du progrmme) il m'affiche ces erreurs :

./jour : ligne 12 : erreur de synthaxe prés de symbole inattendu <<else>>
./jour : ligne 12 : 'else'
quelqu'un m'aider svp :)

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
1 mars 2014 à 12:01
Salut,

j'ai ecrit ce script
Et il est où ???

Sans le voir difficile de t'aider ;-(
0
amdnibrass Messages postés 23 Date d'inscription mercredi 2 octobre 2013 Statut Membre Dernière intervention 28 juillet 2015
1 mars 2014 à 12:34
hhhhhhh je l'oubli
0
amdnibrass Messages postés 23 Date d'inscription mercredi 2 octobre 2013 Statut Membre Dernière intervention 28 juillet 2015
1 mars 2014 à 12:34
attends
0
amdnibrass Messages postés 23 Date d'inscription mercredi 2 octobre 2013 Statut Membre Dernière intervention 28 juillet 2015
1 mars 2014 à 12:44
#script jour 

if ( test $1 -lt 1 -o $1 -gt 12 )
then echo erreur 
fi 
if ( test $1 -eq 1 -o $1 -eq 3 -o $1 -eq 5 -o $1 -eq 7 -o $1 -eq 8 -o $1 -eq 10 -o $1 -eq 12 )
then echo  31
else if ( test $1 -eq 2 -a 'expr $2 % 400' -eq 0 -o \( 'expr $2 % 4' -eq 0 -a 'expr $2 % 100' -ne 0 \) )
         then echo 29
         else echo 28 
         fi 
else  echo 30
fi
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
1 mars 2014 à 13:09
Effectivement, la syntaxe
if ... then ... else
avec plusieurs conditions après le
then
s'écrit avec
elif
et non avec
else if...
;-\

Essaye de récrire ton script en t'inspirant de la syntaxe suivante :
if <condition>
then
<traitement>
elif <condition>
then
<traitement>
elif <condition>
then
<traitement>
etc.

else
<traitement>
fi

Tant qu'on y est, mettre un shebang (#!/bin/bash) en début de script est une bonne habitude à prendre ;-)
0
amdnibrass Messages postés 23 Date d'inscription mercredi 2 octobre 2013 Statut Membre Dernière intervention 28 juillet 2015
1 mars 2014 à 14:41
ok :)
0