Sous Linux, bc est la calculatrice arbitrary-precision (précision arbitraire) du terminal. Contrairement à expr qui ne gère que des nombres entiers, bc supporte les nombres décimaux, les fonctions mathématiques avancées (trigonométrie, racines carrées, logarithmes), et peut même lire des calculs depuis un fichier ou un pipe.
Son nom vient de "Basic Calculator". C'est l'outil idéal pour des calculs rapides sans quitter le terminal.
bc est généralement préinstallé sur les distributions Linux. Si ce n'est pas le cas :
Dans le mode interactif, tapez vos calculs et appuyez sur Entrée. Tapez quit pour quitter.
La variable scale définit le nombre de décimales affichées (par défaut : 0).
Par défaut, bc affiche uniquement des nombres entiers. Pour obtenir des décimales, utilisez scale :
Sans scale, la division donne un résultat entier arrondi.
bc intègre une bibliothèque mathématique complète. Activez-la avec -l :
Fonctions disponibles avec -l :
L'option -q supprime le message de bienvenue.
bc supporte les opérateurs de comparaison (>, , >=, , ==, !=) et les instructions if/else, while, for.
bc peut convertir entre différentes bases grâce à ibase et obase :
Calculez 256 * 1024 sans calculatrice ni Python.
Trouvez la racine carrée de 2 avec 10 décimales.
Convertissez le nombre 255 en binaire et en hexadécimal.
Créez un script qui convertit des degrés Celsius en Fahrenheit.
Calculez la factorielle de 20 avec une boucle dans bc.
echo "256 * 1024" | bc → 262144
echo "scale=10; sqrt(2)" | bc → 1.4142135623
Binaire : echo "obase=2; 255" | bc → 11111111Hexadécimal : echo "obase=16; 255" | bc → FF
Script : echo "scale=2; celsius * 9 / 5 + 32" | bc où celsius est une variable
echo "f=1; for(i=1;i → 2432902008176640000