Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 19-10-2017 21:41:42

calixtus06
Membre
Distrib. : Librazik
Noyau : Linux 4.7.0-0.bpo.1-amd64
(G)UI : mate
Inscription : 25-03-2016

[RESOLU] Créer une mini calculatrice interractive en script bash

Bonjour

Je tente à nouveau de comprendre les script bash et je n'ai jamais programmé de ma vie !

Je tente donc de créer ma première condition.

# !/bin/bash
echo "Qui es tu ? "
read name
echo "Salut $name"
echo " Puis je te proposer de multiplier deux chiffres ?"
if [ $1 = "oui" ]
then
echo "dis moi deux chiffres"
read var1 var2
echo $(($var1 * $var2))
else
echo "dommage"
fi
 



Calqué sur

#!/bin/bash

if [ $1 = "Bruno" ]
then
        echo "Salut Bruno !"
else
        echo "J'te connais pas, ouste !"
fi



d'open classroom

Mais ça me répond ça dans le terminal:

./essai.sh


Qui es tu ?
fa
Salut fa
 Puis je te proposer de multiplier deux chiffres ?
./essai.sh: ligne 6 : [: = : opérateur unaire attendu
dommage
root@debian:/home/nicolas#
 



Des éclairages ?

Merci d'avance

Dernière modification par calixtus06 (24-10-2017 12:14:48)

Hors ligne

#2 19-10-2017 22:03:42

calixtus06
Membre
Distrib. : Librazik
Noyau : Linux 4.7.0-0.bpo.1-amd64
(G)UI : mate
Inscription : 25-03-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Je me suis corrigé :

# !/bin/bash
echo "Qui es tu ? "
read name
echo "Salut $name"

read -p "Puis je te proposer de multiplier deux chiffres ?:" reponse
if [ $reponse = "oui" ]
then
echo "dis moi deux chiffres"
read var1 var2
echo $(($var1 * $var2))
else
echo "dommage"
fi
 



J'avais mis un accent sur réponse et des ' ' à la place des " " autour du oui

Est ce que ça joue ?

Hors ligne

#3 19-10-2017 22:11:43

otyugh
Membre
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Apriori tu ne vois pas que pour exprimer la comparaison "est comme" on fait "==" et pas "=" en bash.

if [ "$reponse" == "oui" ]


Et on mets toujours des guillemets autour des variables chaine de caractère, question de bonne pratique, on laisse sans guillemet pour les nombres (bash est assez malin pour comprendre, dans ce cas, mais dans d'autres circonstance tu le payera).

Dernière modification par otyugh (19-10-2017 22:14:15)


Agenda du libre : se faire dépanner/dépanner IRL ! Le libre n'est pas qu'un phénomène internet.
Framapad sur les balados : Emissions audio pro/amateur, votre radio sur-mesure !

Hors ligne

#4 19-10-2017 23:45:38

calixtus06
Membre
Distrib. : Librazik
Noyau : Linux 4.7.0-0.bpo.1-amd64
(G)UI : mate
Inscription : 25-03-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Salut et merci , du coup j'ai développé un peu mais j'ai des retours erreur sur les then

# !/bin/bash
echo "Qui es tu ? "
read name
echo "Salut $name"

read -p "Puis je te proposer de multiplier deux chiffres ?:" reponse
if [ $reponse = "oui" ]
then
echo "dis moi deux chiffres"
read var1 var2
echo $(($var1 * $var2))
else
read -p " ah tu veux faire une autre opération ?:" reponse
if [ $reponse = oui ]
then
read -p "laquelle ? soustraire additionner diviser ?:" reponse
if [ $reponse = soustraire ]
then
echo "dis moi deux chiffres"
read var1 var2
echo $(($var1 - $var2))
else
[ $reponse = additionner ]
then
echo "donne moi les deux chiffres que tu veux additioner "
read var1 var2
echo " le résultat est $((var1 + $var2))"
else
[ $reponse = diviser ]
then  
echo " dis moi d'abord un chiffre et ensuite son diviseur "
read var1 var2
then
echo "le résultat de ta division est $(($var1 / $var2))"

 



./essai.sh


Qui es tu ?
Edouard
Salut Edouard
Puis je te proposer de multiplier deux chiffres ?:oui
./essai.sh: ligne 24: erreur de syntaxe près du symbole inattendu « then »
./essai.sh: ligne 24: `then'
root@debian:/home/nicolas#



Peux tu éclairer ma lanterne , merci

Dernière modification par calixtus06 (19-10-2017 23:48:09)

Hors ligne

#5 20-10-2017 02:16:49

otyugh
Membre
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Tu as oublié un if apparemment (je n'entre pas dans le code, regarde juste ligne 24, ça devrait te sauter aux yeux).

if [ $reponse = additionner ]
then



Même commentaire sur les guillemets, c'est une mauvaise habitude de ne pas en mettre sur les chaines de caractères.
Et même commentaire sur "=" à la place de "==".

Repose toi sur un tutorial ou sur "man bash" pour des bases solides, le reste viendra mécaniquement ; si c'est flou et que tu fonces, tu va passer ton temps à bloquer sur des détails insignifiants.
Ou copie/inspires toi d'un autre script bien écrit. J'ai passé un certain temps à coder en php, et lire quelqu'un d'autre de compétent m'a vachement aidé (je devrais faire plus, j'ai pris de mauvaises habitudes, c'est dur de revenir en arrière après).

Enfin déjà tu as la chance d'avoir la ligne du plantage. En "C" t'as des trucs aussi explicite que "segmentation fault" tongue

Dernière modification par otyugh (20-10-2017 02:26:52)


Agenda du libre : se faire dépanner/dépanner IRL ! Le libre n'est pas qu'un phénomène internet.
Framapad sur les balados : Emissions audio pro/amateur, votre radio sur-mesure !

Hors ligne

#6 20-10-2017 09:20:13

Croutons
Membre
Distrib. : Handylinux 2.5 vers Jessie et Debian Stretch
Noyau : Linux 3.16.0-4-686-pae, Linux 4.9.0-3-686-pae
(G)UI : xfce
Inscription : 16-12-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Bonjour
je mettais penché un peu sur les variables pour un autre poste et je me suis aperçu que il existait l'option -p a utiliser a la place de echo

#!/bin/sh
#stock la réponse dans la variable portant le nom emplacement
read -p 'Emplacement des fichiers a lister : ' emplacement

#exécute la commande ls avec le chemin contenu dans la variable emplacement
ls $emplacement


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#7 20-10-2017 10:55:04

calixtus06
Membre
Distrib. : Librazik
Noyau : Linux 4.7.0-0.bpo.1-amd64
(G)UI : mate
Inscription : 25-03-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Encore pas tout compris :

# !/bin/bash
echo "Qui es tu ? "
read name
echo "Salut $name"

read -p "Puis je te proposer de multiplier deux chiffres ?:" reponse
if [ $reponse == "oui" ]
then
echo "dis moi deux chiffres"
read var1 var2
echo $(($var1 * $var2))

else

read -p " ah tu veux faire une autre opération ?:" reponse
if [ $reponse == oui ]
then
read -p "laquelle ? soustraire additionner diviser ?:" reponse

if [ $reponse == soustraire ]
then
echo "dis moi deux chiffres"
read var1 var2
echo $(($var1 - $var2))

else

if [ $reponse == additionner ]
then
echo "donne moi les deux chiffres que tu veux additioner "
read var1 var2
echo " le résultat est $((var1 + $var2))"

else

if [ $reponse == diviser ]
then  
echo " dis moi d'abord un chiffre et ensuite son diviseur "
read var1 var2
echo "le résultat de ta division est $(($var1 / $var2))"

else

echo "dommage"

fi



Me renvoie :

./essai.sh


Qui es tu ?
gas
Salut gas
Puis je te proposer de multiplier deux chiffres ?:oui
./essai.sh: ligne 47: erreur de syntaxe : fin de fichier prématurée
root@debian:/home/nicolas#

Hors ligne

#8 20-10-2017 10:58:14

calixtus06
Membre
Distrib. : Librazik
Noyau : Linux 4.7.0-0.bpo.1-amd64
(G)UI : mate
Inscription : 25-03-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Croutons a écrit :

Bonjour
je mettais penché un peu sur les variables pour un autre poste et je me suis aperçu que il existait l'option -p a utiliser a la place de echo

#!/bin/sh
#stock la réponse dans la variable portant le nom emplacement
read -p 'Emplacement des fichiers a lister : ' emplacement

#exécute la commande ls avec le chemin contenu dans la variable emplacement
ls $emplacement



Salut à toi

Comment décide t on d'utiliser 'emplacement' au lieu de "emplacement" ?

Hors ligne

#9 20-10-2017 11:43:05

Croutons
Membre
Distrib. : Handylinux 2.5 vers Jessie et Debian Stretch
Noyau : Linux 3.16.0-4-686-pae, Linux 4.9.0-3-686-pae
(G)UI : xfce
Inscription : 16-12-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

ah je ne sais j'ai pas encore assez de connaissance pour te répondre, on doit bien trouver çà dans le wiki je pense
edit : Peut être tu peux afficher les lignes de ton fichier avec l'option -N de la commande less

cat essai.sh | less -N

Dernière modification par Croutons (20-10-2017 12:56:16)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#10 21-10-2017 14:42:16

calixtus06
Membre
Distrib. : Librazik
Noyau : Linux 4.7.0-0.bpo.1-amd64
(G)UI : mate
Inscription : 25-03-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

ça y est

# !/bin/bash
echo "Qui es tu ? "
read name
echo "Salut $name"

read -p "Puis je te proposer de multiplier deux chiffres ?:" reponse
if [ $reponse == "oui" ]
then
echo "dis moi deux chiffres"
read var1 var2
echo $(($var1 * $var2))
fi


read -p " Veux faire une autre opération ?:" reponse
if [ $reponse == oui ]
then
read -p "Laquelle ? soustraire additionner diviser ?:" reponse
else
echo "Dommage"
fi

if [ $reponse == soustraire ]
then
echo "Dis moi deux chiffres"
read var1 var2
echo $(($var1 - $var2))
fi

if [ $reponse == additionner ]
then
echo "Donne moi les deux chiffres que tu veux additionner "
read var1 var2
echo " Le résultat est $((var1 + $var2))"
fi

if [ $reponse == diviser ]
then  
echo " Dis moi d'abord un chiffre et ensuite son diviseur "
read var1 var2
echo "Le résultat de ta division est $(($var1 / $var2))"
fi



Comment faire pour que l'utilisateur n'est qu'à noter D S ou A en place de diviser soustraire et additionner ?

Hors ligne

#11 21-10-2017 14:51:18

calixtus06
Membre
Distrib. : Librazik
Noyau : Linux 4.7.0-0.bpo.1-amd64
(G)UI : mate
Inscription : 25-03-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Pour compléter cette calculette comment transformer mes formule en utilisant bc et donc obtenir des résultats avec des décimaux ?
Quel langage pour incorporer ce script dans une animation visuelle ? java htlm php ?

merci à vous !!

Hors ligne

#12 21-10-2017 18:45:48

calixtus06
Membre
Distrib. : Librazik
Noyau : Linux 4.7.0-0.bpo.1-amd64
(G)UI : mate
Inscription : 25-03-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Avec bc et les guillemets je bloque :

cat essai.sh | less -N



 
      1 # !/bin/bash
      2 echo "Qui es tu ? "
      3 read name
      4 echo "Salut $name"
      5
      6 read -p "Puis je te proposer de multiplier deux chiffres ?:" reponse
      7 if [ $reponse == "oui" ]
      8 then
      9 echo "dis moi deux chiffres"
     10 read var1 var2
     11 echo " $var1 * $var2 " |bc -l
     12 fi
     13
     14
     15 read -p " Veux faire une autre opération ?:" reponse
     16 if [ $reponse == oui ]
     17 then
     18 read -p "Laquelle ? soustraire additionner diviser ?:" reponse
     19 else
     20 echo "Dommage"
     21 fi
     22
     23 if [ $reponse == soustraire ]
     24 then
     25 echo "Dis moi deux chiffres"
     26 read var1 var2
     27 echo " $var1 - $var2 " |bc -l
     28 fi
     29
     30 if [ $reponse == additionner ]
     31 then
     32 echo "Donne moi les deux chiffres que tu veux additionner "
     33 read var1 var2
     34 echo " Le résultat est " $var1 + $var2 " |bc -l
     35 fi
     36
     37 if [ $reponse == diviser ]
     38 then  
     39 echo " Dis moi d'abord un chiffre et ensuite son diviseur "
     40 read var1 var2
     41 echo "Le résultat de ta division est " $var1 / $var2 " |bc -l
     42 fi
     43
     44
     45
     46
     47
     48
~
~
~
(END)
 



 


Qui es tu ?
nico
Salut nico
Puis je te proposer de multiplier deux chiffres ?:non
 Veux faire une autre opération ?:oui
Laquelle ? soustraire additionner diviser ?:soustraire
Dis moi deux chiffres
5.6 9
-3.4
./essai.sh: ligne 39: caractère de fin de fichier (EOF) prématuré lors de la recherche du « ' » correspondant
./essai.sh: ligne 49: erreur de syntaxe : fin de fichier prématurée
nicolas@nicolasMAO:~/Téléchargements$



Des éclairages ?

Hors ligne

#13 21-10-2017 19:05:59

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.11.12
(G)UI : openbox
Inscription : 26-08-2010

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

otyugh a écrit :

Apriori tu ne vois pas que pour exprimer la comparaison "est comme" on fait "==" et pas "=" en bash.


À vrai dire, on peut faire les deux…


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#14 21-10-2017 19:17:55

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.11.12
(G)UI : openbox
Inscription : 26-08-2010

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Je te propose ce script calquer sur le tien, qui fonctionne :


# !/bin/bash
echo "Qui es tu ? "
read name
echo "Salut $name"

read -p "Puis je te proposer de multiplier deux chiffres ?:" reponse
if [ $reponse = "oui" ]; then
    echo "dis moi deux chiffres"
    read var1 var2
    echo $(($var1 * $var2))
else
    read -p " ah tu veux faire une autre opération ?:" reponse
    if [ $reponse = oui ]; then
        read -p "laquelle ? soustraire additionner diviser ?:" reponse
        if [ $reponse = soustraire ]; then
            echo "dis moi deux chiffres"
            read var1 var2
            echo $(($var1 - $var2))
        elif [ $reponse = additionner ]; then
            echo "donne moi les deux chiffres que tu veux additioner "
            read var1 var2
            echo " le résultat est $((var1 + $var2))"
        elif [ $reponse = diviser ]; then  
            echo " dis moi d'abord un chiffre et ensuite son diviseur "
            read var1 var2
            echo "le résultat de ta division est $(($var1 / $var2))"
        fi
    fi
fi
 



Tu remarqueras que j'ai indenté  les blocs des if, ça rend les choses plus claires.
Un then ne peut suivre qu'un if ou un elif (qui remplace avantageusement un else if… fi),
chaque if doit se terminer par fi .


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#15 21-10-2017 19:57:32

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.11.12
(G)UI : openbox
Inscription : 26-08-2010

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Avec bc la façon de faire est la suivante :


echo "12 + 33" |bc -l
 



Et donc pour récupérer cette valeur dans le script on fait :


resultat=$(echo '12 + 33'|bc -l)
echo $resultat
 



EDIT: Mais franchement, c'est plus pratique d'utiliser bc directement.

EDIT2: En fait pour faire des calculs, je préfère python en interactif (ou ruby),
bon bon, d'accord, c'est hors sujet… wink

Dernière modification par enicar (21-10-2017 20:01:12)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#16 21-10-2017 22:59:44

calixtus06
Membre
Distrib. : Librazik
Noyau : Linux 4.7.0-0.bpo.1-amd64
(G)UI : mate
Inscription : 25-03-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Salut cher voisin Grenoblois ! j'habite à L'Albenc

Je voulais justement apporter mes corrections mais tu m'as devancé, même largement devancé car mon script ne fonctionne plus :


# !/bin/bash
echo "Qui es tu ? "
read name
echo "Salut $name"

read -p "Puis je te proposer de multiplier deux chiffres ?:" reponse
if [ $reponse == "oui" ]
then
echo "Dis moi deux chiffres"
read var1 var2
echo " $var1 * $var2 " |bc -l
fi


read -p " Veux faire une autre opération ?:" reponse
if [ $reponse == oui ];then
read -p "Laquelle ? soustraire additionner diviser ?:" reponse
else
echo "Dommage"
fi

      if [ $reponse == soustraire ];then
      echo "Dis moi deux chiffres"
      read var1 var2
      echo " $var1 - $var2 " |bc -l
      fi

      if [ $reponse == additionner ];then
      echo "Donne moi les deux chiffres que tu veux additionner "
      read var1 var2
      echo "Le résultat est " $var1 + $var2 " |bc -l
      fi

      if [ $reponse == diviser ];then  
      echo "
Dis moi d\'\abord un chiffre et ensuite son diviseur "
      read var1 var2
      echo "
Le résultat de ta division est " $var1 / $var2 " |bc -l
      fi



./essai.sh




Qui es tu ?
nico
Salut nico
Puis je te proposer de multiplier deux chiffres ?:non
 Veux faire une autre opération ?:oui
Laquelle ? soustraire additionner diviser ?:additionner
Donne moi les deux chiffres que tu veux additionner
4.3 6.2
(standard_in) 1: illegal character: L
(standard_in) 1: syntax error
(standard_in) 1: illegal character: \303
(standard_in) 1: illegal character: \251
(standard_in) 1: illegal character: |
(standard_in) 1: syntax error
0
(standard_in) 4: syntax error
(standard_in) 4: syntax error
0
(standard_in) 6: syntax error
(standard_in) 6: illegal character: '
(standard_in) 7: syntax error
(standard_in) 8: illegal character: L
(standard_in) 8: syntax error
(standard_in) 8: illegal character: \303
(standard_in) 8: illegal character: \251
nicolas@nicolasMAO:~/Téléchargements$



Peux tu m'éclairer je ne pige ce qui déconne

Un grand merci d'avance !

Dernière modification par calixtus06 (21-10-2017 23:11:21)

Hors ligne

#17 22-10-2017 05:04:27

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 3.16.0-4-amd64 - 3.16.39-1
(G)UI : gnome 1:3.14+3
Inscription : 21-10-2008

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

4.3 6.2


Le script parle de deux chiffres, pas de quatre, peut-être ? roll


"Théo et Adama te rappellent pourquoi Zyed et Bouna couraient…"
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

Hors ligne

#18 22-10-2017 09:13:33

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.11.12
(G)UI : openbox
Inscription : 26-08-2010

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

calixtus06 a écrit :

Je voulais justement apporter mes corrections mais tu m'as devancé, même largement devancé car mon script ne fonctionne plus :


Si tu prenais l'habitude de mettre en forme correctement tes scripts, ça serait plus facile de s'y retrouver. Là pour comprendre
ce que tu as fait je suis obligé de le faire moi-même, ça ne donne pas envie d'y regarder…


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#19 22-10-2017 09:24:55

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.11.12
(G)UI : openbox
Inscription : 26-08-2010

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Voilà une version qui fonctionne :


# !/bin/bash

echo "Qui es tu ? "
read name
echo "Salut $name"

read -p "Puis je te proposer de multiplier deux chiffres ?:" reponse
if [ $reponse == "oui" ]; then
    echo "Dis moi deux chiffres"
    read var1 var2
    echo " $var1 * $var2 " |bc -l
fi


read -p " Veux faire une autre opération ?:" reponse
if [ $reponse == oui ];then
    read -p "Laquelle ? soustraire additionner diviser ?:" reponse
else
    echo "Dommage"
fi

if [ $reponse == soustraire ];then
    echo "Dis moi deux chiffres"
    read var1 var2
    echo " $var1 - $var2 " |bc -l
fi

if [ $reponse == additionner ];then
    echo "Donne moi les deux chiffres que tu veux additionner "
    read var1 var2
    echo "Le résultat est $(echo $var1 + $var2 |bc -l)"
fi

if [ $reponse == diviser ];then  
    echo "Dis moi d'abord un chiffre et ensuite son diviseur "
    read var1 var2
    echo "Le résultat de ta division est $(echo $var1 / $var2 |bc -l)"
fi
 


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#20 22-10-2017 09:55:41

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.11.12
(G)UI : openbox
Inscription : 26-08-2010

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Je te propose une autre forme pour faire la même chose avec moins de questions :


#! /bin/bash

read -p "Quelle opération voulez-vous effectuer : [A]ddition [S]oustraction [M]ultiplication [D]ivision ?" operation

case $operation in
    [Aa]|[Aa]ddition|'+')
        read -rp 'Donnez les deux nombres à additionner : ' var1 var2
        echo "Résultat : $(echo $var1 + $var2| bc -l)"
    ;;
    [Ss]|[Ss]oustraction|'-')
        read -rp 'Donnez les deux nombres à soustraire : ' var1 var2
        echo "Résultat : $(echo $var1 - $var2| bc -l)"
    ;;
    [Mm]|[Mm]ultiplication|'*')
        read -rp 'Donnez les deux nombres à multiplier : ' var1 var2
        echo "Résultat : $(echo $var1 \* $var2| bc -l)"
    ;;
    [Dd]|[Dd]ivision|'/')
        read -rp 'Donnez les deux nombres à diviser : ' var1 var2
        echo "Résultat : $(echo $var1 / $var2| bc -l)"
    ;;
    *) echo "Opération : \"$operation\" non reconnue."
    ;;
esac
 


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#21 22-10-2017 10:30:56

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

On peut même se passer de la variable operation
et ne pas avoir besoin de valider la réponse à la première question avec la touche Entrée :

#! /bin/bash

read -sn1 -p "Quelle opération voulez-vous effectuer : [A]ddition [S]oustraction [M]ultiplication [D]ivision ?"; echo

case $REPLY in



    *) echo "Opération : \"$REPLY\" non reconnue."
    ;;
esac
 



=======
Il y a aussi la possibilité d'utiliser une variable de type tableau pour la saisie des valeurs entrées:

read -a nombres -p "Donnez les deux nombres à additionner : "
echo "Résultat : $(echo ${nombres[0]} + ${nombres[1]} | bc -l)"
 


Ce qui permet de faire :

read -a nombres -p "Donnez des nombres à additionner : "
echo "Résultat : $(echo "${nombres[@]/%/ +} 0" | bc -l)"
 



read -a nombres -p "Donnez des nombres à multiplier : "
echo "Résultat : $(echo "${nombres[@]/%/ \*} 1" | bc -l)"
 

Dernière modification par MicP (22-10-2017 11:41:31)

Hors ligne

#22 22-10-2017 10:41:07

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.11.12
(G)UI : openbox
Inscription : 26-08-2010

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

MicP a écrit :

On peut même se passer de la variable operation


Franchement, je préfère utiliser une variable qui a un nom qui correspond à son utilité
plutôt qu'un nom générique comme REPLY…


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#23 22-10-2017 11:16:35

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

Ce n'est pas moi qui ai choisi ce nom : c'est bash qui a choisi de nommer REPLY cette variable.

Mais bon, tant qu'à faire, je modifie mon précédent message pour remplacer var par nombres

Dernière modification par MicP (22-10-2017 11:22:30)

Hors ligne

#24 22-10-2017 11:21:46

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.11.12
(G)UI : openbox
Inscription : 26-08-2010

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

MicP a écrit :

Ce n'est pas moi qui ai choisi ce nom : c'est bash qui a choisi de nommer REPLY cette variable.


Raison de plus pour choisir nos propres noms de variables de telles façons qu'elles soient bien nommées !

EDIT: Bref, je suis contre l'économie de nom de variables… que ce soit dans REPLY ou dans un autre nom
ça prendra la même place et je préfère être explicite dans le choix des noms de variables.

Dernière modification par enicar (22-10-2017 11:23:46)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#25 22-10-2017 11:27:30

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : [RESOLU] Créer une mini calculatrice interractive en script bash

J'avais proposé d'utiliser REPLY pour économiser une variable (histoire de pinailler un peu wink )
mais c'est sûr qu'on est pas dans un script qui va faire des boucles en pagaille,
donc une variable de plus ou de moins, ça ne va pas changer grand chose.

Et c'est pareil pour tout ce que j'ai proposé :
c'est juste comme ça, pour le plaisir, au cas où ça intéresserait quelqu'un.

Dernière modification par MicP (22-10-2017 11:31:20)

Hors ligne

Pied de page des forums