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. 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
    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. 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. 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 ????