Script shell

Bonjour,

voici mon code shell
#!/bin/bash

n=$1
m=$2

echo "Entrez l'opération :"
read op

case $op in
'+')
echo $(($1 + $2))
;;
'-')
echo $(($1 - $2))
;;
'*')
echo $(($1 * $2))
;;
'/')
echo $(($1/$2))
;;
*)
echo "Opération inconnue"
;;
esac
////////////////////////////////////////////////////
le pog marche mais ce n'est pas complet
est ce que vous pouvez m'aider à le compléter car j'y arrive pas toute seul
je dois traiter le cas de la dévision sur 0
aussi je dois prévoir le cas ou il ya pas d'arg rentrés par l'utilisateur
la résultat de la dévsion dans mon code est tjrs entier, puis je remeier à ça ??
merci de m'aide car c'est trés urgent , c'est un travail que je dois rendre demain
Configuration: Windows XP
Firefox 3.6

5 réponses

  1. merci lami20j pour ta réponse,
    j'ai résolu le problème de la division , mais est ce que vous poucez m'aider pour modifier le script de telle façon à ce qu'il affiche au lancement un msg invitant l'utilisateur à saisir des 2 nombres au lieu de les passer en argument ????
    1. Re,

      Si tu veux seulement la division entière alors au lieu de ça
      echo $1 / $2 = $(echo "scale=2;$1/$2" | bc)

      mets ça
          echo $1 / $2 =  $(($1/$2))
      1. Salut,

        if m=0 exit
        Mais que faisons nous si n est zéro? ;-)

        Pour pouvoir faire une opération, d'après ce que j'a vu il faut les deux opérandes.
        Il faudra peut être s'assurer que les deux opérandes existent en tant qu'argument.

        $ cat calculatrice.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 -e "Opérations \n"
          echo "+ addittion"
          echo "- soustraction"
          echo "* multiplication"
          echo "/ division"
          echo "% modulo - calculer le reste"
          echo -n "Entrez l'opération à effectuer sur $1 et $2 : "
        
          read op
          case $op in
            '+')
            echo $1 + $2 = $(($1 + $2))
            ;;
            '-')
            echo $1 - $2 = $(($1 - $2))
            ;;
            '*')
            echo "$1 * $2 = $(($1 * $2))"
            ;;
            '/')
            echo $1 / $2 =  $(echo "scale=2;$1/$2" | bc) 
            ;;
            '%')
            echo $1 % $2 =  $(($1%$2)) 
            ;;
            *)
            echo "Opération inconnue"
            ;;
            esac 
        fi 
        exit


        Exécution
        $ ./calculatrice.sh
        Usage : ./calculatrice.sh n1 n2
        $ ./calculatrice.sh 6
        Usage : ./calculatrice.sh n1 n2
        $ ./calculatrice.sh 6 0
        Division par zéro
        $ ./calculatrice.sh 13 27
        Opérations 
        
        + addittion
        - soustraction
        * multiplication
        / division
        % modulo - calculer le reste
        Entrez l'opération à effectuer sur 13 et 27 : +
        13 + 27 = 40
        $ ./calculatrice.sh 13 27
        Opérations 
        
        + addittion
        - soustraction
        * multiplication
        / division
        % modulo - calculer le reste
        Entrez l'opération à effectuer sur 13 et 27 : -
        13 - 27 = -14
        $ ./calculatrice.sh 13 27
        Opérations 
        
        + addittion
        - soustraction
        * multiplication
        / division
        % modulo - calculer le reste
        Entrez l'opération à effectuer sur 13 et 27 : *
        13 * 27 = 351
        $ ./calculatrice.sh 13 27
        Opérations 
        
        + addittion
        - soustraction
        * multiplication
        / division
        % modulo - calculer le reste
        Entrez l'opération à effectuer sur 13 et 27 : /
        13 / 27 = .48
        $ ./calculatrice.sh 13 27
        Opérations 
        
        + addittion
        - soustraction
        * multiplication
        / division
        % modulo - calculer le reste
        Entrez l'opération à effectuer sur 13 et 27 : %
        13 % 27 = 13
        
        1. Salut ! Je suis pas super for à ça, mais pour la division par zéro, je dirais un truc comme ça…

          #!/bin/bash
          
          n=$1
          m=$2
          
          
          
          echo "Entrez l'opération :"
          read op
          if m=0 exit
          else 
          
          
              case $op in
              '+')
              echo $(($1 + $2))
              ;;
              '-')
              echo $(($1 - $2))
              ;;
              '*')
              echo $(($1 * $2))
              ;;
              '/')
              echo $(($1/$2))
              ;;
              *)
              echo "Opération inconnue"
              ;;
              esac 
          fi