Script

Fermé
aaaaaaaaaaaaaabbbbbbbbbbbbbbcccc Messages postés 2 Date d'inscription mercredi 27 mars 2013 Statut Membre Dernière intervention 27 mars 2013 - 27 mars 2013 à 19:20
abcdabcdabcd Messages postés 14 Date d'inscription mercredi 27 mars 2013 Statut Membre Dernière intervention 9 mai 2013 - 28 mars 2013 à 11:56
salut tout le monde!je veux faire un script shell qui fait la resolution d'une equation de deuxième degré dont les facteurs sont fourni en paramétres!j'ai essayé ce script :

#!/bin/bash
clear
function resoudre()
{
let a=$2**2-4*$1*$3
let d=2*$1
if [ $a -lt 0 ]
then
echo "cet equation n'a pas de solutions"
fi
if [ $a -gt 0 ]
then
let b=-$2+$(echo "sqrt($a)" | bc )
let c=-$2-$(echo "sqrt($a)" | bc )
#let x=$(echo "scale=2 $b/$d" | bc )
echo "$b et $c"
x='bc <<fin
scale=2
$b/$d
fin'
echo $x
y='bc <<fin
scale=2
$c/$d
fin'
echo " les resolutions de cet equation sont :"
echo "$x and $y"
fi
if [ $a -eq 0 ]
then
let x=-$2/$d
echo "cet equation a une seule solution qui est : $x"
fi
}
#ici on appelle la fonction
echo "etnrez les facteurs de votre equation : "
read var1 var2 var3
resoudre $var1 $var2 $var3

et voila le resultat:

etnrez les facteurs de votre equation :
2 4 1
-2 et -6
./fonction2d: line 23: warning: here-document at line 20 delimited by end-of-file (wanted 'fin')
-.50 0
./fonction2d: line 28: warning: here-document at line 25 delimited by end-of-file (wanted 'fin')
les resolutions de cet equation sont :
-.50
0 and -1.50
0

S.O.S s'il vous plait
A voir également:

4 réponses

aaaaaaaaaaaaaabbbbbbbbbbbbbbcccc Messages postés 2 Date d'inscription mercredi 27 mars 2013 Statut Membre Dernière intervention 27 mars 2013
27 mars 2013 à 20:00
sos
0
Utilisateur anonyme
27 mars 2013 à 20:15
salut,

deux choses:
- mets le backtick après fin à la ligne: le shell ne lit pas fin, mais fin'
- bash a des here-string (<<<), c'est très pratique dans ce cas
var=$(bc <<<"scale=2; $b/$d")
0
abcdabcdabcd Messages postés 14 Date d'inscription mercredi 27 mars 2013 Statut Membre Dernière intervention 9 mai 2013
27 mars 2013 à 20:33
bonsoir
merci beaucoup
ça a trés bien marché
0
abcdabcdabcd Messages postés 14 Date d'inscription mercredi 27 mars 2013 Statut Membre Dernière intervention 9 mai 2013
28 mars 2013 à 11:56
merci qqchquicommenceparQ
la ligne var=$(bc <<<"scale=2; $b/$d") a très bien marché
0