script shell renvoi erreur à l'éxécution

script shell renvoi erreur à l'éxécution - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 19-06-2006 à 12:10:22    

bonjour, je fais mes premiers pas dans les scripts shell et je rencontre un problème avec un script particulier. Le but de ce script est de classer par ordre croissant 2 valeurs rentré lors de l'éxécution. Cette parti fonctionne bien lorsqu'il y a 2 valeurs de rentré. Le problème c'est que quand on ne rentre qu'une valeur, il le script doit demander une autre valeur et la comparer à celle déjà rentré, et c'est là que ça coince. Voici le detail de mon script :
 

Citation :

#!/bin/sh
case $# in
0) echo il manque deux arguments, entrez votre nombre:;;
1) echo il manque un argument, entrer votre nombre:; read var
 `if [ $1 -gt $var ] ;then echo "$var est inferieur a $1"; else echo "$1 est inferieur a $var"`;;
2) if [ $1 -gt $2 ] ;then echo "$2 est inferieur a $1"; else echo "$1 est inferieur a $2";
fi
esac


 
à noter que pour le moment c'est normal qu'il s'arrete sur un message lorsqu'il n'y a aucun argument.
Merci d'avance à toutes celles et ceux qui pourront m'aider.

Reply

Marsh Posté le 19-06-2006 à 12:10:22   

Reply

Marsh Posté le 26-06-2006 à 14:59:34    

alexmat a écrit :

bonjour, je fais mes premiers pas dans les scripts shell et je rencontre un problème avec un script particulier. Le but de ce script est de classer par ordre croissant 2 valeurs rentré lors de l'éxécution. Cette parti fonctionne bien lorsqu'il y a 2 valeurs de rentré. Le problème c'est que quand on ne rentre qu'une valeur, il le script doit demander une autre valeur et la comparer à celle déjà rentré, et c'est là que ça coince. Voici le detail de mon script :
 

Citation :

#!/bin/sh
case $# in
0) echo il manque deux arguments, entrez votre nombre:;;
1) echo il manque un argument, entrer votre nombre:; read var
 `if [ $1 -gt $var ] ;then echo "$var est inferieur a $1"; else echo "$1 est inferieur a $var"`;;
2) if [ $1 -gt $2 ] ;then echo "$2 est inferieur a $1"; else echo "$1 est inferieur a $2";
fi
esac


 
à noter que pour le moment c'est normal qu'il s'arrete sur un message lorsqu'il n'y a aucun argument.
Merci d'avance à toutes celles et ceux qui pourront m'aider.


 
personnellement j'aime bien les blocs structurés

Code :
  1. #!/bin/sh
  2. case $# in
  3. 0) echo il manque deux arguments, entrez votre nombre:;;
  4. 1)
  5. echo "il manque un argument, entrer votre nombre:"
  6. read var
  7. if [ $1 -gt $var ]
  8. then
  9.  echo "$var est inferieur a $1"
  10. else
  11.  echo "$1 est inferieur a $var"
  12. fi
  13. ;;
  14. 2) if [ $1 -gt $2 ] ;then echo "$2 est inferieur a $1"; else echo "$1 est inferieur a $2";
  15. fi
  16. esac


 
 
pense aussi à tester si ils sont numériques...


Message édité par youx21 le 26-06-2006 à 14:59:52
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed