Programmation shell sh

Fermé
Guillaume - 26 déc. 2009 à 16:58
 lami20j - 26 déc. 2009 à 17:52
Bonjour,

j'essai d'écrire un script qui affiche un menu et qui en cas d'erreur sur le choix du menu retourne un message d'erreur voici mon code :

#!/bin/sh

echo "choix 1-: calcul de ma moyenne "
echo "choix 2-: calcul de la somme "
echo "choix 3-: le minimum "
echo "choix 9-:Quitter"

read choix

while [ choix != "9" ]
do
case
1 ) echo "Je calcule cela"
2 ) echo "Je fais ca immédiatement"
3 ) echo "boubourse c'est facile mais je le fais"
9 ) break
* ) echo "Hé tu sais lire ou pas "
esac
read choix
done

et ce me renvoi comme erreur apres lecture du choix :

./essai.sh: 12: Syntax error: newline unexpected (expecting word)

Pouvez vous m'aidez s'il vous plaît?

Une autre question également je voudrai savoir comment fait t-on la division entiere de 2 arguments ?

En vous remerciant

5 réponses

Salut,

lami20j@debian-acer:~/shell$ cat choix.sh 
#!/bin/sh

echo "choix 1-: calcul de ma moyenne "
echo "choix 2-: calcul de la somme "
echo "choix 3-: le minimum "
echo "choix 9-:Quitter"

read choix

while [ choix != "9" ]
do
    case $choix in
    '1' ) echo "Je calcule cela"
        ;;
    '2' ) echo "Je fais ca immédiatement"
        ;;
    '3' ) echo "boubourse c'est facile mais je le fais"
        ;;
    '9' ) break
        ;;
    * ) echo "Hé tu sais lire ou pas "
        ;;
   esac
read choix
done 
lami20j@debian-acer:~/shell$ sh choix.sh 
choix 1-: calcul de ma moyenne 
choix 2-: calcul de la somme 
choix 3-: le minimum 
choix 9-:Quitter
1
Je calcule cela
2
Je fais ca immédiatement
3
boubourse c'est facile mais je le fais
45
Hé tu sais lire ou pas 
9
0
Merci beaucoup et pour la question de la division entière de deux arguments?
0
Re,


Ca aurait sympa de nous montrer ce que tu as essayé.

Voici pour la division entière

lami20j@debian-acer:~/shell$ cat division.sh 
#!/bin/sh
if [ $# -ne 2 ]
then
  echo "Usage : $0 n1 n2"
  exit 1
fi

if [ $2 -eq 0 ]
then
  echo "Division par zéro"
  exit 2
else
  echo "$1 / $2 = " $(($1/$2))
fi 
lami20j@debian-acer:~/shell$ ./division.sh 
Usage : ./division.sh n1 n2
lami20j@debian-acer:~/shell$ ./division.sh 6
Usage : ./division.sh n1 n2
lami20j@debian-acer:~/shell$ ./division.sh 60 20
60 / 20 =  3
lami20j@debian-acer:~/shell$ ./division.sh 60 27
60 / 27 =  2
lami20j@debian-acer:~/shell$ ./division.sh 0 7
0 / 7 =  0
lami20j@debian-acer:~/shell$ ./division.sh 9 0
Division par zéro
0
Merci beaucoup lamij20 ! C'est que je début en script schell je suis en DUT informatique 1ere année et que j'avais tenté ca une expresion courte comme echo `expr $1 / $2 ` mais ca n'avait pas marché
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question