Re: [ssfr] utilisation de bc

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


Bon entre-temps j'ai trouvé une autre écriture qui marche :

nb=$(echo "scale=6; $RANDOM/$MAXRD" | bc -l)

Maintenant je suis confronté à un aute problème. Je dois tester si un
nombre décimal est plus petit ou égale à 1.0.... Voici la fonction :

function est_dans_cercle () {
	cond=$(echo "scale=6; 2.*(sqrt ($1*$1 + $2*$2))" | bc -l)
	if [ $(echo "$cond" | bc ) -le 1. ]
	then
		echo "Point dans le cercle"
	fi
}

Me sort : 

../pi.sh: line 20: [: 1.131370: integer expression expected

correspond à la ligne du if ...

Une idée ?

Je sais que ce serait plus simple en perl par exemple, mais c'est en
shell que je veux le faire ;-)



Le 2008-07-15, à 09:23:52 +0200, steve (dlist@xxxxxxxxxx) a écrit :

> Lignes : 38
> 
> Bonjour à toutes et à tous,
> 
> Je suis en train de coder un petit script bash pour calculer Pi selon la
> méthode de Monte-Carlo. Pour cela je dois écrire une fonction qui me
> renvoie un nombre entre 0 et 1. Ma fonction marche mais me sort des
> erreurs que je n'arrive pas à faire disparaître. La voici
> 
> 
> # Début fonction
> MAXRD=32767
> function get_point () {
> 	nb=$(bc -l << EOF
> 	scale = 6
> 	$RANDOM/$MAXRD
> 	EOF
> 	)
> 	echo $nb
> }
> 
> get_point
> # Fin fonction
> 
> 
> Et la sortie :
> 
> (standard_in) 3: illegal character: O
> (standard_in) 3: parse error
> .944578
> 
> C'est quoi les deux erreurs standard_in ?
> 
> Merci pour votre aide et excellente journée
> 
> --
> Steve
> 
> ---
> 

---


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/