Script shell

katycat_61 Messages postés 45 Statut Membre -  
djmic Messages postés 73 Statut Membre -
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. le hollandais volant Messages postés 5294 Statut Membre 1 059
     
    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
    0
  2. lami20j
     
    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
    
    0
  3. lami20j
     
    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))
    0
  4. katycat_61 Messages postés 45 Statut Membre
     
    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 ????
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. djmic Messages postés 73 Statut Membre 1
     
    bin tu fais pareil que pour ton opérateur
    0