Skip to main content

Comment utiliser la calculatrice "bc" dans les scripts

084 / Calcul littéral / Développer et réduire une expression littérale (Avril 2025)

084 / Calcul littéral / Développer et réduire une expression littérale (Avril 2025)
Anonim

Le programme Linux bc peut être utilisé comme calculatrice de bureau ou comme langage de script mathématique. C'est aussi simple que d'appeler le avant JC commande via un terminal.

Outre l'utilitaire bc, le shell Bash fournit quelques méthodes supplémentaires pour effectuer des opérations arithmétiques.

Remarque: Le programme bc s'appelle également calculatrice de base ou calculatrice de banc.

Syntaxe de la commande BC

La syntaxe de la commande bc est similaire à celle du langage de programmation C, et différents opérateurs sont pris en charge, tels que l’addition, la soustraction, plus ou moins, et plus.

Voici les différents commutateurs disponibles avec la commande bc:

  • -h, --help: Imprime cette utilisation et quitte.
  • -i, --interactive: force le mode interactif.
  • -l, --mathlib: Utilise les routines mathématiques prédéfinies.
  • -q, --quiet: n'imprime pas la bannière initiale.
  • -s, --standard: les constructions bc non standard sont des erreurs.
  • -w, --warn: met en garde sur les constructions non standard bc.
  • -v, --version: Imprime les informations de version et quitte.

Reportez-vous à ce manuel de commande bc pour plus d'informations sur l'utilisation de la calculatrice de base.

Exemple de commande bc

La calculatrice de base peut être utilisée dans un terminal en entrant simplement avant JC, après quoi vous pouvez taper des expressions mathématiques régulières comme ceci:

4+3

… pour obtenir un résultat comme celui-ci:

7

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 / bashecho '6.5 / 2.7' | avant JC

La première ligne est simplement le chemin de l'exécutable qui exécute ce script.

La deuxième ligne contient deux commandes. La commande echo génère une chaîne contenant l'expression mathématique contenue dans des guillemets simples (6.5 divisé par 2.7, dans cet exemple). L'opérateur de canal (|) passe cette chaîne en tant qu'argument au programme bc. La sortie du programme bc est ensuite affichée sur la ligne de commande.

Pour exécuter ce script, ouvrez une fenêtre de terminal et accédez au répertoire dans lequel se trouve le script. Nous supposerons que le fichier de script s'appelle bc_script.sh . Assurez-vous que le fichier est exécutable à l'aide de la commande chmod:

chmod 755 bc_script.sh

Ensuite, vous entrez:

./bc_script.sh

Le résultat serait le suivant:

2

Afin d'afficher 3 décimales puisque la réponse vraie est 2.407407 …, utilisez une instruction scale à l'intérieur de la chaîne délimitée par des guillemets simples:

#! / bin / bashecho 'scale = 3; 6.5 / 2.7 '| avant JC

Pour une meilleure lisibilité, la ligne avec les calculs peut être réécrite sur plusieurs lignes. Afin de diviser la ligne de commande en plusieurs lignes, vous pouvez insérer une barre oblique inverse à la fin de la ligne:

echo 'scale = 3; var1 = 6,5 / 2,7;var1 '| avant JC

Pour inclure des arguments de ligne de commande dans vos calculs bc, vous devez changer les guillemets simples en guillemets doubles de sorte que les symboles de paramètre de ligne de commande soient interprétés par le shell Bash:

echo "scale = 3; var1 = 6,5 / 2,7;var2 = 14 * var1;var2 * = $ 1;var2 "| avant JC

Le premier argument de ligne de commande est accessible à l'aide de la variable "$ 1", le second argument utilise "$ 2", etc.

Vous pouvez maintenant écrire vos propres fonctions arithmétiques personnalisées dans des scripts Bash distincts et les appeler à partir d'autres scripts.

Par exemple, si script1 contient:

#! / bin / bashecho "scale = 3; var1 = 6,5 / 2,7;var2 = 14 * var1;var2 * = $ 1;var2 "| avant JC

… et script2 contient

#! / bin / bash var0 = "100"echo "var0: $ var0"fonction fun1echo "scale = 3; var1 = 10;var2 = var1 * $ var0;var2 "fres = $ (fun1)echo "fres:" $ fresvar10 = $ (./ script1 $ fres);echo "var10:" $ var10;

… ensuite, l'exécution de script2 appellera script1 à l'aide d'une variable $ fres calculée dans script2 en tant que paramètre.