Com utilitzar la calculadora "bc" en scripts

El programa Linux bc pot ser utilitzat com una còmoda calculadora d'escriptori o com un llenguatge de scripting matemàtic. És tan fàcil com trucar a l' ordre bc a través d'un terminal.

A més de la utilitat bc, el shell de Bash proporciona alguns altres mètodes per realitzar operacions aritmètiques .

Nota: El programa bc també s'anomena calculadora bàsica o calculadora de banc.

Sintaxi de comandaments bc

La sintaxi per a la comanda bc és similar al llenguatge de programació C, i s'admet una varietat d'operadors, com ara suma, resta, més o menys i més.

Aquests són els diferents commutadors disponibles amb l'ordre bc:

Vegeu aquest manual de comandaments de bc per obtenir més detalls sobre com podeu utilitzar la calculadora bàsica.

Exemple de comanda bc

La calculadora bàsica es pot utilitzar en un terminal simplement introduint bc , després de la qual podeu escriure expressions matemàtiques habituals com aquesta:

4 + 3

... per obtenir un resultat com aquest:

7

En realitzar una sèrie de càlculs repetidament, té sentit utilitzar la calculadora bc com a part d'un script. La forma més senzilla d'aquest script es veuria així:

#! / bin / bash echo '6.5 / 2.7' | bc

La primera línia és només la ruta d'accés de l'executable que executa aquest script.

La segona línia conté dos comandaments. L'ordre echo genera una cadena que conté l'expressió matemàtica continguda en cometes simples (6.5 dividit per 2.7, en aquest exemple). L'operador de canonades (|) passa aquesta cadena com a argument al programa bc. A continuació, es mostra la sortida del programa bc a la línia d'ordres.

Per executar aquest script, obriu una finestra de terminal i navegueu fins al directori on es troba el script. Assumirem que el fitxer de seqüència s'anomena bc_script.sh . Assegureu-vos que el fitxer sigui executable mitjançant l'ordre chmod :

chmod 755 bc_script.sh

Llavors entraràs a:

./bc_script.sh

El resultat seria el següent:

2

Per mostrar 3 llocs decimals ja que la resposta veritable és 2.407407 ..., utilitzeu una declaració d'escala dins de la cadena delimitada per les cometes simples:

#! / bin / bash echo 'scale = 3; 6.5 / 2.7 '| bc

Per obtenir una millor lectura, la línia amb els càlculs es pot reescriure en diverses línies. Per tal que la ruptura de la línia d'ordres en múltiples línies, podeu col·locar una barra invertida al final de la línia:

escala de ressò = 3; var1 = 6.5 / 2.7; var1 '\ | bc

Per incloure arguments de la línia d'ordres en els vostres càlculs de bc, heu de canviar les cometes simples en cometes dobles perquè els símbols del paràmetre de la línia d'ordres siguin interpretats pel shell de Bash:

echo "scale = 3; var1 = 6.5 / 2.7; var2 = 14 * var1; var2 * = $ 1; var2" \ | bc

S'accedeix al primer argument de línia d'ordres mitjançant la variable "$ 1", el segon argument utilitza "$ 2", etc.

Ara podeu escriure les vostres pròpies funcions aritmètiques personalitzades en seqüències d'ordres separades de Bash i trucar-les des d'altres scripts.

Per exemple, si script1 conté:

#; / bin / bash echo "scale = 3; var1 = 6.5 / 2.7; var2 = 14 * var1; var2 * = $ 1; var2" \ | bc

... i script2 conté

#! / bin / bash var0 = "100" echo "var0: $ var0" funció fun1 {echo "scale = 3; var1 = 10; var2 = var1 * $ var0; var2" \ | bc} fres = $ (fun1) echo "fres:" $ fres var10 = $ (./ script1 $ fres); echo "var10:" $ var10;

... llavors l'execució de script2 invocarà script1 usant una variable $ fres computada en script2 com a paràmetre.