echo « scale=311; 4*a(1) » | bc -l
$ echo "scale=311; 4*a(1)" | bc -l
3.141592653589793238462643383279502884197169399375105820974944592307\
81640628620899862803482534211706798214808651328230664709384460955058\
22317253594081284811174502841027019385211055596446229489549303819644\
28810975665933446128475648233786783165271201909145648566923460348610\
45432664821339360726024914127372458700660
Explications:
- « echo » renvoie un affichage sur console (saisie, écriture, résultats)… Voir Initiation au shell (boucle for, do, done)
- « scale=x » scale permet d’indiquer le nombre de chiffres après la virgule (remplacer x par le chiffre souhaité)
- « 4*a(1) » a(1) se base sur la fonction Arc Tangente a(). Cette formule « 4*a(1) », permet entre autres, le calcul du nombre pi.
- « | » «pipe» redirige le résultat d’une commande dans le flux d’entrée d’une autre commande. Ici la commande suivante sera « bc » qui est une commande de calculatrice «basic calculator»
- « bc -l » récupère la formule « 4*a(1) » après le « pipe » pour effectuer le calcul. L’option « -l » utilise la librairie mathématique standard (Define the standard math library) qui utilise, entre autres, la fonction Arc Tangente a()… Voire « man bc »
Si l’on met à « scale » un nombre plus « gros », par exemple « 2000 » le temps de réponse est plus long, on peut « mesurer » le temps de réponse avec la commande « time », exemple:
time echo « scale=2000; 4*a(1) » | bc -l
$ time echo "scale=2000; 4*a(1)" | bc -l 3.141592653589793238462643383279502884197169399375105820974944592307\ 81640628620899862803482534211706798214808651328230664709384460955058\ 22317253594081284811174502841027019385211055596446229489549303819644\ (...) 74427862203919494504712371378696095636437191728746776465757396241389\ 086583264599581339047802759008 real 0m2.470s user 0m2.470s sys 0m0.001s
Pas forcement utile au quotidien, donc nécessaire!

