#1 Le 24/09/2009, à 07:34
- yanick_cangaeld
Programme avec arguments numériques
Bonjour,
Je dois écrire un programme qui accepte indifféremment 0,1 ou 2 arguments numériques et les classe en ordre croissant .
J'ai écrit ce code mais ça fait une journée que je n'arrive pas à le faire fonctionner . ça m'affiche :
./question1: 10: Syntax error: Unterminated quoted string
voilà le code :
#!/bin/sh
case $# in
0) echo il manque deux arguments
echo entrer le premier argument :
read nb1
echo entrer le deuxième argument :
read nb2;;
1)echo il manque un argument,entrez votre nombre :
read nb2;;
*)echo trop d'arguments veuillez réessayer
exit 10;;
esac
if($1 < $2) then echo $1 inférieur à $2
elif($1 > $2) then echo $2 inférieur à $1
else echo $1 egal $2
fi
Pouvez vous m'expliquer ce qui ne va pas dans mon code ?
Hors ligne
#2 Le 24/09/2009, à 08:10
- SkeRoy
Re : Programme avec arguments numériques
pourquoi as-tu
read nb1
alors que plus loin tu as :
read nb2;;
avec des points-virgules ?
Et je dirais que perso je mettrais des guillemets sur les echo.
Dernière modification par SkeRoy (Le 24/09/2009, à 08:11)
Hors ligne
#3 Le 24/09/2009, à 08:23
- yanick_cangaeld
Re : Programme avec arguments numériques
Je suis bien obligé de lire les 2 variables pour les comparer ?
Par contre le code continue à me mettre la même erreur à la même ligne
Hors ligne
#4 Le 24/09/2009, à 09:27
- serged
Re : Programme avec arguments numériques
C'est ça, le coup des guillemets :
echo trop d'arguments veuillez réessayer
Il faut mettre :
echo "trop d'arguments veuillez réessayer"
l'apostrophe (d'arguments) demande une apostrophe fermante, sinon.
Il y en a peut-être d'autres (pas vérifié) : comme le suggère SkeRoy mets tous les textes d'echo entre guillemets, tu seras tranquille (surtout si plus tard tu modifies les textes...).
Sinon, il ne manque pas le cas 2) (on a fourni pile-poil 2 arguments) ?
Dernière modification par serged (Le 24/09/2009, à 09:27)
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#5 Le 24/09/2009, à 09:38
- yanick_cangaeld
Re : Programme avec arguments numériques
J'ai mis les guillemets et effectivement ça fonctionne mieux merci .
Par contre je ne sais pas comment écrire le cas 2) ?
Hors ligne