cobra_sa heuuu c'est quoi le SA | Perso je pense que le case est plus interressant. Rapidement voila ce que j'aurais fait:
Code :
- #!/bin/bash
- operande1=${1:?"Specifiez un nombre"}
- operateur=${2:?"Specifiez un operateur"}
- operande2=${3:?"Specifiez un deuxieme nombre"}
- sum=$(($operande1 + $operande2))
- rest=$(($operande1 - $operande2))
- case $operande1 in
- "+" )echo "$operande1 + $operande2 = $sum";break;;
- "-" )echo "$operande1 - $operande2 = $rest";break;;
- *) echo "operateur non supporte";;
- esac
- #voila
- #
- #info1: le -e n'est pas necessaire ici
- #info2: $sum et $rest sont deja des resultats les {} ne sont pas necessaires
- #info3: j'ai mis des break pour sortir directement du case, sinon le script va tester les conditions qui suivent, hors ici on est sur de n'avoir qu'un choix
- #differences:
- # Avec tes if imbriques tu faisais 4 tests minimum, avec le case au max tu en fait 3 donc gain de temp.
- # C'est pas plus claire comme ca???
|
_Faust_ a écrit :
J'ai le résultat voulu, mais est-ce que c'est de la "programmation correcte" ou c'est mieux avec des "cases". Il me semble d'avoir déja vu que les "if" imbriqués n'était pas la bonne facon....
Code :
- #!/bin/bash
- operande1=${1:?"Specifiez un nombre"}
- operateur=${2:?"Specifiez un operateur"}
- operande2=${3:?"Specifiez un deuxieme nombre"}
- sum=$(($operande1 + $operande2))
- rest=$(($operande1 - $operande2))
- if [[ "$operateur" != "+" ]] && [[ "$operateur" != "-" ]]
- then
- echo -e "operateur non supporte"
- else
- if [ "$operateur" = "+" ]
- then
- echo -e "$operande1 + $operande2 = ${sum}"
- else
- [ "$operateur" = "-" ]
- echo -e "$operande1 - $operande2 = ${rest}"
- fi
- fi
|
|
|