Mathematische Berechnungen bei Bash

Mathematische Berechnungen bei Bash

Bash ist eine leistungsstarke Skriptsprache, die für eine Vielzahl von Aufgaben verwendet werden kann, einschließlich mathematischer Berechnungen. Die Arbeit mit Zahlen in Bash kann jedoch eine Herausforderung sein, insbesondere wenn es um schwimmende Arithmetik, große Zahlen und komplexe Berechnungen geht.

In diesem Artikel werden wir einige Tipps und Tricks für mathematische Berechnungen in Bash untersuchen.

Verwenden Sie das richtige Tool für den Job

Bash verfügt über mehrere integrierte Werkzeuge zur Durchführung mathematischer Berechnungen, wie die (()) Und $ (()) Operatoren, die Expr Befehl und die BC Befehl. Jedes Tool hat seine Stärken und Schwächen, und die Auswahl des Rechten kann einen großen Unterschied in Bezug auf Leistung und Genauigkeit bewirken.

  • Der '(())' ' Und '$ (())' ' Operatoren sind die am häufigsten verwendeten Werkzeuge zur Durchführung von Ganzzahlarithmetik in Bash. Sie unterstützen alle grundlegenden arithmetischen Operationen sowie bitweise Operationen und Vergleiche. Sie unterstützen jedoch keine Gleitkomma-Arithmetik, und ihre Präzision beschränkt sich auf die Größe des Ganzzahltyps auf Ihrem System.
  • Der 'expr' Der Befehl ist ein leistungsfähigeres Tool, das die Gleitkomma-Arithmetik sowie String-Operationen und reguläre Ausdrücke unterstützt. Es ist jedoch langsamer als die Operatoren (()) und $ (()), und seine Ausgabe muss unter Verwendung der Befehlssubstitution erfasst werden.
  • Der 'bc Der Befehl ist das vielseitigste Tool zur Durchführung mathematischer Berechnungen in Bash. Es unterstützt arbitrische Präzisionsarithmetische, komplexe Zahlen und fortschrittliche Funktionen wie trigonometrische und logarithmische Funktionen. Es ist jedoch erforderlich, dass ein separater Prozess gestartet wird, der Ihr Skript verlangsamen kann.

Rechenoperationen

Bash bietet grundlegende arithmetische Operationen wie Addition, Subtraktion, Multiplikation und Abteilung. Diese Operationen können unter Verwendung der arithmetischen Expansionssyntax durchgeführt werden $ ((Ausdruck)). Zum Beispiel fügt der folgende Befehl 3 und 4 hinzu:

echo $ ((3 + 4))
1echo $ ((3 + 4))

Dies wird ausgeben 7.

In ähnlicher Weise können wir andere arithmetische Operationen wie Subtraktion, Multiplikation und Abteilung ausführen:

echo $ ((6 - 2)) echo $ ((4 * 5)) Echo $ ((12/3))
123echo $ ((6 - 2)) echo $ ((4 * 5)) Echo $ ((12/3))

Dies wird ausgeben 4, 20, Und 4, bzw.

Variablen und Mathematikoperationen

Wir können auch Variablen in unseren Mathematikberechnungen verwenden. Zum Beispiel:

a = 5 b = 2 echo $ ((a + b))
123a = 5b = 2echo $ ((a + b))

Dies wird ausgeben 7.

Wir können auch Operationen auf den Variablen selbst wie folgt ausführen:

a = 5 b = 2 echo $ ((a *= b))
123a = 5b = 2echo $ ((a *= b))

Dies wird ausgeben 10. Die Variable A hat jetzt einen Wert von 10, nachdem er mit B multipliziert wurde.

Gleitkomma-Mathematikoperationen

Bash unterstützt keine Mathematikoperationen für Gleitpunkte, aber wir können externe Tools wie BC und AWK verwenden, um diese Berechnungen durchzuführen.

'BC' ist ein Befehlszeilenrechner, der willkürliche Präzision unterstützt. Wir können es verwenden, um Floating-Punkt-Berechnungen wie diese durchzuführen:

Echo "Skala = 2; 10/3" | BC
1Echo "Skala = 2; 10/3" | BC

Dies wird ausgeben 3.33.

Awk ist ein leistungsstarkes Text-Verarbeitungswerkzeug, das auch mathematische Operationen unterstützt. Wir können es verwenden, um Floating-Punkt-Berechnungen wie diese durchzuführen:

Echo "10.5 2.5 "| awk 'printf"%.2f \ n ", $ 1 / $ 2 '
1Echo "10.5 2.5 "| awk 'printf"%.2f \ n ", $ 1 / $ 2 '

Dies wird ausgeben 4.20.

Verwenden Sie Funktionen, um komplexe Berechnungen zu vereinfachen

Bei der Arbeit mit komplexen Berechnungen in Bash ist es oft hilfreich, sie in kleinere, überschaubare Funktionen zu unterteilen. Mit Funktionen können Sie einen Codeblock zusammenfassen und in Ihrem Skript mehrmals wiederverwenden, wodurch Ihr Code modular und einfacher zu verstehen ist.

Nehmen wir zum Beispiel an, Sie möchten die Fläche eines Kreises angesichts seines Radius berechnen. Sie können eine Funktion namens erstellen "Calculate_area" Das nimmt den Radius als Argument an und gibt den Bereich zurück:

#!/bin/bash pi = 3.14159 calculate_area () lokaler Radius = $ 1 örtliche Gebiet = $ (echo "$ pi * $ radius * $ radius" | bc) echo $ area radius = 5 Area = $ (calculate_area $ radius) echo "Die Fläche eines Kreises eines Kreises Mit Radius $ Radius ist $ area "
12345678910111213#!/bin/bash pi = 3.14159 calculate_area () lokaler radius = $ 1 örtliches Gebiet = $. Radius $ radius ist $ area "

Dieses Skript definiert eine Funktion namens calculate_area, die den Radius als Argument nimmt, den Bereich mit der Formel berechnet A = πr^2, und gibt das Ergebnis zurück. Der Hauptteil des Skripts ruft dann die Funktion mit einem Radius von 5 auf, erfasst die Ausgabe mithilfe der Befehlssubstitution und druckt das Ergebnis auf dem Bildschirm aus.

Verwenden Sie bedingte Aussagen für die Fehlerbehandlung

Bei der Durchführung mathematischer Berechnungen in Bash ist es wichtig, Fehler ordnungsgemäß zu behandeln, insbesondere beim Umgang mit Benutzereingaben oder externen Datenquellen. Eine Möglichkeit, dies zu tun.

Nehmen wir beispielsweise an, Sie möchten das Faktor einer Nummer berechnen, die als Benutzereingabe angegeben ist. Sie können ein Skript erstellen, das eine Schleife verwendet, um das Faktor zu berechnen, und eine bedingte Anweisung, um auf Fehler zu überprüfen:

#!/bin/bash read -p "Geben Sie eine Nummer ein:" num if ! [["$ num" = ~ ^[0-9]+$]]; dann echo "Fehler: '$ num' ist keine gültige Ganzzahl" Beenden 1 fi faktorial = 1 für ((i = 1; i<=$num; i++)); do factorial=$(expr "$factorial * $i") done echo "The factorial of $num is $factorial"
123456789101112131415#!/bin/bash read -p "Geben Sie eine Nummer ein:" num if ! [["$ num" = ~ ^[0-9]+$]]; dann echo "Fehler: '$ num' ist keine gültige Ganzzahl" Exit 1fi factorial = 1FOR ((i = 1; i<=$num; i++)); do factorial=$(expr "$factorial * $i")done echo "The factorial of $num is $factorial"

Dieses Skript liest eine Nummer vom Benutzer, die den Befehl read verwendet, und verwendet eine bedingte Anweisung, um zu überprüfen, ob die Eingabe eine gültige Ganzzahl ist. Wenn die Eingabe nicht gültig ist, druckt das Skript eine Fehlermeldung und beendet mit einem Statuscode ungleich Null. Wenn die Eingabe gültig ist, verwendet das Skript eine Schleife, um das Faktor zu berechnen, und druckt das Ergebnis auf den Bildschirm.

Abschluss

In diesem Artikel haben wir untersucht, wie mathematische Berechnungen in Bash durchgeführt werden können. Wir haben gelernt, wie man grundlegende arithmetische Operationen, Variablen und externe Tools verwendet BC Und awk Mathematikoperationen in Bash durchführen. Mit diesen Tools können wir eine Vielzahl von mathematischen Berechnungen in Bash durchführen, von grundlegenden Arithmetik bis hin zu komplexeren Operationen.