Programmation shell sh

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
Configuration: Linux
Firefox 3.0.16

5 réponses

  1. 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é
    1. 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
      
      1. Merci beaucoup et pour la question de la division entière de deux arguments?
        1. 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