Skip to main content

Hoe de "bc" Calculator in Scripts te gebruiken

How to learn any language in six months | Chris Lonsdale | TEDxLingnanUniversity (April 2025)

How to learn any language in six months | Chris Lonsdale | TEDxLingnanUniversity (April 2025)
Anonim

Het Linux-programma bc kan worden gebruikt als een handige desktopcalculator of als een wiskundige scripttaal. Het is net zo eenvoudig als het bellen van de bc commando via een terminal.

Naast het bc-hulpprogramma biedt de Bash-shell een paar andere methoden voor het uitvoeren van rekenkundige bewerkingen.

Notitie: Het bc-programma wordt ook standaardcalculator of bankcalculator genoemd.

BC Command Syntax

De syntaxis voor de bc-opdracht is vergelijkbaar met de programmeertaal C en er worden verschillende operators ondersteund, zoals optellen, aftrekken, plus of minus, en meer.

Dit zijn de verschillende beschikbare schakelaars met het bc-commando:

  • -h, --help: drukt dit gebruik af en wordt afgesloten.
  • -i, --interactive: dwingt interactieve modus.
  • -l, --mathlib: gebruikt de vooraf gedefinieerde wiskundige routines.
  • -q, --quiet: drukt de initiële banner niet af.
  • -s, --standard: niet-standaard BCC-constructies zijn fouten.
  • -w, --warn: Waarschuwt voor niet-standaard BC-constructies.
  • -v, --version: drukt versiegegevens af en sluit af.

Raadpleeg deze bc-handleiding voor meer informatie over hoe u de standaardcalculator kunt gebruiken.

bc Opdracht Voorbeeld

De eenvoudige rekenmachine kan in een terminal worden gebruikt door eenvoudigweg in te voeren bc, waarna je normale wiskundige uitdrukkingen zoals deze kunt typen:

4+3

… om een ​​resultaat als dit te krijgen:

7

Wanneer u herhaaldelijk een reeks berekeningen uitvoert, is het logisch om de bc-calculator als onderdeel van een script te gebruiken. De eenvoudigste vorm van zo'n script zou er ongeveer zo uitzien:

#! / Bin / bashecho '6.5 / 2.7' | bc

De eerste regel is gewoon het pad van het uitvoerbare bestand dat dit script uitvoert.

De tweede regel bevat twee opdrachten. De echo-opdracht genereert een tekenreeks met de wiskundige uitdrukking in enkele aanhalingstekens (6,5 gedeeld door 2,7, in dit voorbeeld). De pipe-operator (|) geeft deze reeks door als argument voor het BC-programma. De uitvoer van het BC-programma wordt vervolgens weergegeven op de opdrachtregel.

Om dit script uit te voeren, opent u een terminalvenster en navigeert u naar de map waar het script zich bevindt. We nemen aan dat het scriptbestand wordt aangeroepen bc_script.sh . Zorg ervoor dat het bestand uitvoerbaar is met behulp van de opdracht chmod:

chmod 755 bc_script.sh

Dan zou je invoeren:

./bc_script.sh

Het resultaat zou het volgende zijn:

2

Om 3 decimalen weer te geven sinds het echte antwoord is 2.407407 …, gebruikt u een schaalinstructie in de tekenreeks die wordt begrensd door de enkele aanhalingstekens:

#! / Bin / bashecho 'schaal = 3; 6.5 / 2.7 '| bc

Voor een betere leesbaarheid kan de regel met de berekeningen op meerdere regels worden herschreven. Om de opdrachtregel op te splitsen in meerdere regels, kunt u een backslash aan het einde van de regel plaatsen:

echo 'schaal = 3; var1 = 6,5 / 2,7;var1 '| bc

Om opdrachtregelargumenten op te nemen in uw bc-berekeningen, moet u de enkele aanhalingstekens veranderen in dubbele aanhalingstekens zodat de parameters van de opdrachtregelparameters worden geïnterpreteerd door de Bash-shell:

echo "schaal = 3; var1 = 6,5 / 2,7;var2 = 14 * var1;var2 * = $ 1;var2 "| bc

Het eerste opdrachtregelargument wordt geopend met de variabele "$ 1", het tweede argument gebruikt "$ 2", enz.

Nu kunt u uw eigen aangepaste rekenkundige functies in afzonderlijke Bash-scripts schrijven en ze vanuit andere scripts oproepen.

Als script1 bijvoorbeeld het volgende bevat:

#! / Bin / bashecho "schaal = 3; var1 = 6,5 / 2,7;var2 = 14 * var1;var2 * = $ 1;var2 "| bc

… en script2 bevat

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

… dan zal het uitvoeren van script2 script1 oproepen met behulp van een variabele $ fres die in script2 als parameter is berekend.