Pages : 1
#1 Le 10/07/2009, à 15:14
- Resp
Calcul en bash
Bonjour, j'ai essayé de faire une calculatrice en bash mais elle ne marche pas, pourquoi ?
#!/bin/bash
read calcul
calcul=`calcul`
let "resultat = calcul"
echo $resultat
Merci d'avance.
#2 Le 10/07/2009, à 15:27
- maxim
Re : Calcul en bash
calcul=`calcul` signifie: assigner à la variable $calcul ce qui est retourné par la fonction calcul.
Et je ne sais pas ce que tu cherches à faire car je ne vois m^eme pas le moindere calcul.
Dernière modification par maxim (Le 10/07/2009, à 15:28)
æâ€êþÿûîœô~øäßë‘’ðüïŀö´`«»© ↓¬¿×÷¡Æ¢ÊÞÞŸŸÛÎŒÔ˚ØÄ„Ë‚¥ÐÜÏĿÖÙ
⋅∕…→↑←Ŀ™Èɲ˘—–————‑È™ÇÀ≠±¸¸⇙⇓⇘⇐⇔⇒⇖⇑⇗⇕¯“”®←↑→…⋅∕−
Hors ligne
#3 Le 10/07/2009, à 15:29
- Resp
Re : Calcul en bash
Voici mon raisonnement :
La personne lance le script est est invité à rentré un calcul, la personne saisie par exemple :
5+5
Donc j'exécute 5+5 et j'affiche le résultat. Tout bêtement mais apparemment c'est plus compliqué.
#4 Le 10/07/2009, à 15:32
- Geoffrey35
Re : Calcul en bash
#!/bin/bash
read calcul
resultat=$((calcul))
echo $resultat
Je suis pas trop emballé par ce que je viens d'écrire.
Dernière modification par Geoffrey35 (Le 10/07/2009, à 15:32)
Ubuntu, c'est pas non plus...
Hors ligne
#5 Le 10/07/2009, à 15:41
- wido
Re : Calcul en bash
Bonjour,
#!/bin/bash
clear
echo "Calculatrice"
echo "************"
echo -n "Saisir un nombre :"
read n
echo "Calculs (+x, -x, /x, *x),"
echo "tapez = pour avoir le résultat"
echo "---------------------------------------"
echo "==>"$n
op=""
while [ "$op" != "=" ]; do
echo -n "==>"
read op
if [ "$op" != "=" ];
then
eval "let n=n$op"
fi
done
echo "======================================="
echo "==>"$n
vu sur : http://ferry.eof.eu.org/lesjournaux/pg/ … /x589.html
Hors ligne
#6 Le 10/07/2009, à 15:59
- Totor
Re : Calcul en bash
Bonjour,
Le bash n'est pas adapté à ce genre de traitement.
La méthode de Geoffrey35 fonctionne (c'est d'ailleurs, ce que j'aurai proposé) mais ne permet pas d'effectuer des calculs complexes.
Par ailleurs, les décimaux n'existent pas en bash.
Je n'ai pas testé le script de wido, ni même essayé de le comprendre, mais de toute évidence, la précision est forcément non gérée.
Enfin, je propose une autre solution... qui n'est pas "full bash" puisqu'elle introduit bc :
#!/bin/bash
read -p "Entrer une expression arithmétique : " expression
resultat="$(bc <<< "${expression}")"
echo "Résultat du calcul : ${resultat}"
Dernière modification par Totor (Le 10/07/2009, à 15:59)
-- Lucid Lynx --
Hors ligne
#7 Le 10/07/2009, à 16:22
- Resp
Re : Calcul en bash
Je viens d'apprendre le bash aujourd'hui donc...
La méthode de Geoffrey35 marche effectivement mais c'est vrai que la tienne est plus précise.
Peux tu m'expliquer la ligne "resultat="$(bc <<< "${expression}")"" ?
Pourquoi un tableau ? Que veut dire "bc <<<" ?
#8 Le 10/07/2009, à 16:31
- marky_mark
Re : Calcul en bash
#!/bin/bash/NASA
launch rocket_on_mars
resultat=$((launching in progress))
echo $5...4...3...2...1...ignition
et ça ça marche? ou bien j'en oublie des morceaux?
car la fusée est encore dans mon jardin
Lubuntu 11.10
Hors ligne
#9 Le 10/07/2009, à 23:31
- Totor
Re : Calcul en bash
Pourquoi un tableau ? Que veut dire "bc <<<" ?
Quel tableau ?
bc est un language destiné à effectuer des calculs
<<< est une notation bash ayant pour objectif de passer une chaine de caractères dans l'entrée standard d'une instruction (ici bc)
-- Lucid Lynx --
Hors ligne
#10 Le 20/10/2009, à 01:58
- zarer
Re : Calcul en bash
Bonsoir,
#!/bin/bash read calcul resultat=$((calcul)) echo $resultat
Je suis pas trop emballé par ce que je viens d'écrire.
Je cherchais à faire la même chose mais le résultat est tout de même très approximatif... Je viens d'installer concalc (sous Debian), pour faire les calculs directement dans le terminal/la console. Plus efficace.
@+
Il existe dix sortes de gens : ceux qui comprennent le système binaire et les autres.
Carnet de route : Road2Mayotte.
Linux On The Root a rejoint la TuxFamily !
--> Debian + FreeBSD = Debian GNU/kFreeBSD
Hors ligne
#11 Le 20/10/2009, à 06:46
- HP
Re : Calcul en bash
Je viens d'installer concalc (sous Debian) […] terminal/la console. Plus efficace.
Pas évident de trouver les sources…
J'ai des systèmes pour lesquels je n'ai pas de çà dans mon gestionnaire de paquets… et j'aimerais bien le compiler, car ça me servirait ! On a toujours besoin d'un calculatrice… et une GUI pour ce genre de truc, c'est pas forcément utile…
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#12 Le 20/10/2009, à 09:50
- valAa
Re : Calcul en bash
zarer a écrit :Je viens d'installer concalc (sous Debian) […] terminal/la console. Plus efficace.
Pas évident de trouver les sources…
J'ai des systèmes pour lesquels je n'ai pas de çà dans mon gestionnaire de paquets… et j'aimerais bien le compiler, car ça me servirait ! On a toujours besoin d'un calculatrice… et une GUI pour ce genre de truc, c'est pas forcément utile…
Le plus simple est je pense une console python (ou tout autre interpréteur interactif du même genre).
Perso pour ma "calculette" j'utilise un lanceur du genre
gnome-terminal -e "ipython -pylab"
Je me retrouve dans un console ipython avec le module math (et d'autres comme matplotlib) importé... une calculatrice de luxe en somme... (avec même un grapheur)
Dernière modification par valAa (Le 20/10/2009, à 09:52)
Hors ligne
#13 Le 20/10/2009, à 14:14
- hunterkiller
Re : Calcul en bash
bc est la calculatrice de bash
man bc pour les options
--
hunterkiller EPITA's student
HP:300GO atlon64live x2 NVDIA512 =>beryl a fond
ubuntu 7.10,*bsd ->user
Hors ligne
#14 Le 20/10/2009, à 17:32
- Hizoka
Re : Calcul en bash
pour la prise en charge des decimales en bash :
function DECIMALE()
{
if [ $1 = "-p" ]; then
precision=$2; shift 2;
else
precision=1 # valeur par défaut ex: #DECIMALE -p 4 158/600*100
fi
bc -q << EOF
scale=$precision
$*
quit
EOF
}
DECIMALE 58/9
code récupéré je ne sais plus où...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
Pages : 1