Comment utiliser la calculatrice "bc" dans les scripts

Le Linux avant JC le programme fonctionne comme une calculatrice de bureau pratique ou comme un langage de script mathématique. C'est aussi simple que d'appeler le avant JCcommander via une borne. Outre l'utilitaire bc, la plupart des shells fournissent d'autres méthodes qui effectuer des opérations arithmétiques.

Syntaxe de commande BC

Les syntaxe car la commande bc est similaire au langage de programmation C.

La commande prend en charge plusieurs commutateurs:

  • -h, --aider: imprime cette utilisation et quitte.
  • -je, --interactif: Force le mode interactif.
  • -l, --mathlib: utilise les routines mathématiques prédéfinies.
  • -q, --calmer: n'imprime pas la bannière initiale.
  • -s, --la norme: Les constructions bc non standard sont des erreurs.
  • -w, --avertir: met en garde contre les constructions bc non standard.
  • -v, --version: imprime les informations de version et quitte.

Consultez la page de manuel de avant JC pour une ventilation détaillée de l'utilisation de la commande.

Exemple de commande BC

La calculatrice de base peut être utilisée dans un terminal en saisissant simplement

avant JC, après quoi vous pouvez saisir des expressions mathématiques régulières comme celle-ci:

4+3

pour obtenir un résultat comme celui-ci:

7
Commande Linux bc

Utiliser bc dans un script

Lorsque vous effectuez une série de calculs à plusieurs reprises, il est logique d'utiliser la calculatrice bc dans le cadre d'un script. La forme la plus simple d'un tel script ressemblerait à ceci:

#!/bin/bash
écho '6,5 / 2,7' | avant JC

La première ligne est le chemin de l'exécutable qui exécute ce script. Dans ce cas, l'environnement Bash.

La deuxième ligne contient deux commandes. Les écho La commande génère une chaîne contenant l'expression mathématique contenue entre guillemets simples (6,5 divisé par 2,7, dans cet exemple). Les tuyau L'opérateur (|) passe cette chaîne en argument au programme bc. La sortie du programme bc est alors affichée sur la ligne de commande.

Étendre les performances de bc

Pour afficher trois décimales, puisque la vraie réponse est 2,407407..., utilisez une instruction d'échelle à l'intérieur de la chaîne délimitée par des guillemets simples:

#!/bin/bash
echo 'échelle=3; 6,5/2,7' | avant JC
Linux bc avec échelle

Pour une meilleure lisibilité, la ligne avec les calculs peut s'étendre sur plusieurs lignes. Mettez une barre oblique inverse à la fin de la ligne:

echo 'échelle=3; 
var1 = 6,5 / 2,7 ;
var1 ' \
| avant JC

Utiliser des arguments avec bc

Pour inclure des arguments dans les calculs bc, remplacez les guillemets simples par des guillemets doubles afin que les symboles des paramètres de la ligne de commande soient interprétés par le shell:

echo "échelle=3; 
var1 = 6,5 / 2,7 ;
var2 = 14 * var1;
var2 *= var1;
var2 " \
| avant JC

Le premier argument de la ligne de commande est accessible à l'aide de la variable var1, le deuxième argument utilise var2.

Linux bc avec des variables

Par exemple, si script1 contient:

#!/bin/bash
echo "échelle=3;
var1 = 6,5 / 2,7 ;
var2 = 14 * var1;
var2 *= var1;
var2 " \
| avant JC

et script2 contient:

#!/bin/bash 
var0="100"
echo "var0: $var0"
fonction fun1
{
echo "échelle=3;
var1 = 10 ;
var2 = var1 * $var0 ;
var2 " \
| avant JC
}
frais=$(amusant1)
echo "fres: "$fres
var10=$(./script1 $fres);
echo "var10: "$var10;

puis en exécutant script2 invoquera script1 en utilisant une variable $frs calculé en script2 comme paramètre.

Linux bc avec deux scripts