#1 Le 28/08/2013, à 10:59
- LINUXIX
[ Résolu ] erreur de Scripts
Bonjours a tous , je suis nouveau et j'espère que je me suis pas tromper de rubrique
j'ai une erreur sur un script si on pouvais m'aide je vous en remercie beaucoup
#!/bin/sh
a=0
b=0
echo -n "classe :" ; read a b
until [ $a -gt 0 ] ;do
echo -n "il manque un argument,entrer votre nombre :" ; read a
done
until [ $b -gt 0 ] ;do
echo -n "il manque un argument,entrer votre nombre :" ; read b
done
if [ $a -lt $b ] ;then
echo "$a est inferieur a $b"
elif [ $a -gt $b ] ;then
echo "$b est inferieur a $a"
fi
exit 0
et voila l'erreur qu'il me fait quand t'il manque un argument ...
classe :34
[: 15: -gt: unexpected operator
il manque un argument,entrer votre nombre :56
34 est inferieur a 56
richard@lithium:~/Scripts$
je vous remercie d'avance
Dernière modification par LINUXIX (Le 28/08/2013, à 12:05)
Hors ligne
#2 Le 28/08/2013, à 11:31
- Watael
Re : [ Résolu ] erreur de Scripts
salut,
read a b écrase les valeurs par défaut.
donc, si b n'est pas renseigné, le test échoue parce que $b est vide.
tu peux rendre une valeur par défaut en utilisant le Remplacement des paramètres (voir man sh).
Dernière modification par Watael (Le 28/08/2013, à 11:32)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 28/08/2013, à 11:31
- pingouinux
Re : [ Résolu ] erreur de Scripts
Bonjour,
Il faut placer les variables entre guillemets " ".
elif [ "$a" -gt "$b" ] ;then
Édité :
Ça ne suffit pas, car l'opérateur -gt attend des valeurs entières. La solution de Watael est la bonne.
Dernière modification par pingouinux (Le 28/08/2013, à 11:36)
Hors ligne
#4 Le 28/08/2013, à 12:04
- LINUXIX
Re : [ Résolu ] erreur de Scripts
Je vous remercie beaucoup je vais aller voir sa
merci a tous pour votre aide je vais revenir vous voir j'ai d'autre exercice a faire comme sa que je ne comprend pas tous
merci encore a tous
Hors ligne