Skip to main content

WIE MAN: Verwendung des Rechners "bc" in Skripten - 2019

CSGO Academy #1 - Thema: Die richtigen Grafikeinstellungen (Dezember 2019).

Das Linux-Programm bc kann als praktischer Desktop-Rechner oder als mathematische Skriptsprache verwendet werden. Es ist so einfach wie das anrufen bc Befehl über ein Terminal.

Neben dem bc-Dienstprogramm bietet die Bash-Shell einige andere Methoden zum Ausführen von Rechenoperationen.

Hinweis: Das Programm bc wird auch als Basisrechner oder Bankrechner bezeichnet.

BC-Befehlssyntax

Die Syntax für den Befehl bc ähnelt der Programmiersprache C, und es werden verschiedene Operatoren wie Addition, Subtraktion, Plus oder Minus usw. unterstützt.

Dies sind die verschiedenen Optionen, die mit dem Befehl bc verfügbar sind:

  • -h, --help: Druckt diese Verwendung und wird beendet.
  • -i, --interactive: Erzwingt den interaktiven Modus.
  • -l, --mathlib: Verwendet die vordefinierten mathematischen Routinen.
  • -q, --quiet: Druckt das ursprüngliche Banner nicht.
  • -s, --standard: Nichtstandardisierte bc-Konstrukte sind Fehler.
  • -w, --warn: Warnt vor nicht standardmäßigen bc-Konstrukten.
  • -v, --version: Druckt Versionsinformationen und beendet den Vorgang.

Weitere Informationen zur Verwendung des grundlegenden Rechners finden Sie in diesem bc-Befehlshandbuch.

bc Befehlsbeispiel

Der Basisrechner kann durch Eingabe einfach in einem Terminal verwendet werden bc, danach können Sie reguläre mathematische Ausdrücke wie folgt eingeben:

4+3

… um ein Ergebnis wie dieses zu erhalten:

7

Wenn Sie eine Reihe von Berechnungen wiederholt ausführen, ist es sinnvoll, den bc-Rechner als Teil eines Skripts zu verwenden. Die einfachste Form eines solchen Skripts würde ungefähr so ​​aussehen:

#! / bin / bashEcho '6,5 / 2,7' | bc

Die erste Zeile ist nur der Pfad der ausführbaren Datei, die dieses Skript ausführt.

Die zweite Zeile enthält zwei Befehle. Der Befehl echo generiert eine Zeichenfolge, die den in einfachen Anführungszeichen enthaltenen mathematischen Ausdruck enthält (6,5 geteilt durch 2,7 in diesem Beispiel). Der Pipe-Operator (|) übergibt diesen String als Argument an das Programm bc. Die Ausgabe des Programms bc wird dann in der Befehlszeile angezeigt.

Um dieses Skript auszuführen, öffnen Sie ein Terminalfenster und navigieren Sie zu dem Verzeichnis, in dem sich das Skript befindet. Wir gehen davon aus, dass die Skriptdatei aufgerufen wird bc_script.sh . Stellen Sie sicher, dass die Datei mit dem Befehl chmod ausführbar ist:

chmod 755 bc_script.sh

Dann würden Sie eingeben:

./bc_script.sh

Das Ergebnis wäre folgendes:

2

Um 3 Dezimalstellen anzuzeigen, da die wahre Antwort 2.407407 … ist, verwenden Sie eine Skalenanweisung in der Zeichenfolge, die durch die einfachen Anführungszeichen getrennt ist:

#! / bin / bashEchoskala = 3; 6,5 / 2,7 '| bc

Zur besseren Lesbarkeit kann die Zeile mit den Berechnungen mehrzeilig überschrieben werden. Um die Befehlszeile in mehrere Zeilen aufzuteilen, können Sie am Ende der Zeile einen umgekehrten Schrägstrich setzen:

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

Um Befehlszeilenargumente in Ihre bc-Berechnungen aufzunehmen, müssen Sie die einfachen Anführungszeichen in doppelte Anführungszeichen setzen, sodass die Befehlszeilenparameter-Symbole von der Bash-Shell interpretiert werden:

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

Auf das erste Befehlszeilenargument wird mit der Variablen "$ 1" zugegriffen, das zweite Argument verwendet "$ 2" usw.

Jetzt können Sie Ihre eigenen benutzerdefinierten Rechenfunktionen in separaten Bash-Skripts schreiben und sie von anderen Skripts aus aufrufen.

Wenn zum Beispiel script1 enthält:

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

… und script2 enthält

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

Wenn Sie dann script2 ausführen, wird script1 mit einer in script2 berechneten Variablen $ fres als Parameter aufgerufen.