Programmation shell sh

Guillaume -  
 lami20j -
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. lami20j
     
    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
  2. Guillaume
     
    Merci beaucoup et pour la question de la division entière de deux arguments?
    0
  3. lami20j
     
    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
  4. Guillaume
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question