Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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... tongue
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

Resp a écrit :

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,

Geoffrey35 a écrit :
#!/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

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 ! smile 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

HP a écrit :
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 ! smile 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 smile


--
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