Script shell

Fermé
katycat_61 Messages postés 32 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 27 mai 2011 - 27 déc. 2009 à 21:45
djmic Messages postés 70 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 9 juillet 2010 - 28 déc. 2009 à 23:08
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
A voir également:

5 réponses

le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 057
28 déc. 2009 à 02:51
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
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
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
katycat_61 Messages postés 32 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 27 mai 2011
28 déc. 2009 à 20:44
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
djmic Messages postés 70 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 9 juillet 2010 1
28 déc. 2009 à 23:08
bin tu fais pareil que pour ton opérateur
0