Contenu | Rechercher | Menus

Annonce

Le forum rencontre en ce moment quelques soucis de charge, il est possible qu'une erreur soit affichée quand vous postez un message, ne rechargez pas la page au risque de poster une seconde fois votre message

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

Déjà un an…

#1 Le 24/09/2009, à 08:34

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, à 09:10

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, à 09:11)


== Debian Lenny == {Linux User #422949}

Hors ligne

#3 Le 24/09/2009, à 09:23

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   sad

Hors ligne

#4 Le 24/09/2009, à 10:27

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, à 10:27)


Linux-Mint Maya 64 Cinnamon sur Toshiba Satellite P200-1BY. Linux-Mint  Nadia 64 Cinnamon sur Compaq Presario SR5617FR

Hors ligne

#5 Le 24/09/2009, à 10:38

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

Haut de page ↑