Wie man Dezimalberechnungen in Bash mit BC erstellt

Wie man Dezimalberechnungen in Bash mit BC erstellt

Bei Bash sind manchmal Dezimalberechnungen erforderlich. Die Standardberechnungsprogrammierungen ($ []) kann keine Dezimalausgabe liefern. Während wir es dazu bringen können, eine Dezimalausgabe zu berechnen (aber nicht erzeugen), indem wir die Zahlen mitspielsweise um einen Faktor 1000 multiplizieren und dann eine textbasierte Aufteilung durchführen, ist dies eine hässliche Problemumgehung und erstellt komplexen Code. Es gibt jedoch einen Nutzen in Bash, das nativ auf Dezimalbasis berechnungsbasierte Berechnungen ohne Tricks oder Problemumgehungen durchführen kann!

In diesem Tutorial lernen Sie:

  • So verwenden Sie BC, um Dezimalberechnungen durchzuführen
  • So erstellen Sie in der Bash -Befehlszeile oder in Ihren Skripten dezimalbasierte Berechnungen
  • So verwenden Sie Variablen, um die von BC erzeugten Ergebnisse zu speichern
  • So verwenden Sie Variablen in weiteren Berechnungen
  • So vermeiden Sie, dass Sie Fehlern von Bash -Variablen angegeben haben
Wie man Dezimalberechnungen in Bash mit BC erstellt

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Linux-Verteilungsunabhängige
Software BASH -Befehlszeile, Linux -basiertes System
Andere Jedes Dienstprogramm, das standardmäßig nicht in der Bash -Shell enthalten ist sudo apt-Get Installieren Sie den Dienstprogramm (oder yum install Für Redhat -basierte Systeme)
Konventionen # - Erfordert, dass Linux -Commands mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden sudo Befehl
$-erfordert, dass Linux-Commands als regulärer nicht privilegierter Benutzer ausgeführt werden

BC installieren

So installieren Sie BC auf Ubuntu, Mint oder einem anderen Debian/APT -basierten Betriebssystem: Typ:

$ sudo apt installieren bc 


So installieren Sie BC auf Fedora, Redhat oder einem anderen Redhat/Yum -basierten Betriebssystem: Typ:

$ sudo yum install bc 

Standard -Bash -Berechnungen

Wir können ein einfaches Abteilungsproblem direkt in Bash durchführen:

$ echo $ [13/4] 3 

Dies versucht und teilt 13 durch 4 mit der Standard -Bash -Idiom $ [Berechnung]. Dies ist zwar ziemlich vielseitig:

$ echo "1+1? Die Antwort lautet: $ [1 + 1] "1 + 1? Die Antwort lautet: 2 

Es kann bedauerlicherweise keine Dezimalstellen ausgeben. Problemumgehungen zu diesem Problem sind komplex und hässlich, wie zuvor beschrieben.

BC zur Rettung

Eine elegantere Lösung ist zu verwenden BC Für Berechnungen.

Während BC auch für dieselben Berechnungen verwendet werden kann wie bereits möglich in Bash:

$ echo '13 / 4 '| BC 3 


Es ist auch in der Lage, Dezimalergebnisse mit der Erzeugung zu erzeugen -l (-l definiert die Option Standard -Mathematikbibliothek) an BC:

$ echo '13 / 4 '| BC -L 3.250000000000000000 

Ergebnisse als Variablen speichern

Wir können das Ergebnis auch als Variable unter Verwendung einer Unterschale aufbewahren:

$ Outcome = $ (echo '13/4 '| bc -l) $ echo $ outcome 3.250000000000000000 

Hier haben wir dieselbe Berechnung wie im letzten Beispiel verwendet, aber wir haben eine Unterschale verwendet $ () Berechnung durchführen. Dies ermöglicht es uns, das Ergebnis in einer Variablen leicht zu speichern. Wir können diese Variable jetzt in anderen Berechnungen weiter verwenden oder einfach das Ergebnis wie oben gezeigt ausgeben. Um es in einer anderen Berechnung zu verwenden, können Sie:

$ echo "$ outcome * 4" | BC -L 13.000000000000000000 

Bitte beachten Sie, wie wir diesmal Doppelzitate verwendet haben, um unsere Arithmetik zu definieren. Der Grund dafür ist, dass wir die wollen $ Ergebnis Variable, die durch den tatsächlichen Wert ersetzt werden soll. Wenn wir einzelne Zitate verwendet hätten ('') Stattdessen wäre die Operation fehlgeschlagen, da der variable Name als wörtliche Eingabe angesehen worden wäre. Mit anderen Worten, es wäre kein Ersatz für den Wert geschehen, wie wir aus der folgenden Ausgabe erkennen können:

$ echo '$ outcome * 4' | BC -L (Standard_in) 1: Illegales Zeichen: $ (Standard_in) 1: Syntaxfehler 

Bereit, mehr Bash zu lernen? Erforschen Sie unsere nützlichen Bash -Befehlszeilen -Tipps und Tricks -Serien!

Abschluss

In diesem Artikel haben wir untersucht BC in der Befehlszeile. Die gleichen Befehle funktionieren gut, wenn sie innerhalb eines Shell -Skripts verwendet werden. Wir haben uns auch die Mängel der Verwendung von Standard -Bash -Berechnungsidiomen sowie die Verwendung von Variablen in Kombination mit untersucht BC Verwenden von Unterschalen. Schließlich haben wir entdeckt, was passiert, wenn man fälschlicherweise Variablen in Bash zitiert.

Verwandte Linux -Tutorials:

  • Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 3
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 1
  • Bash Advanced Variable Idiome für die Fallempfindlichkeit…
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 4
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 2
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 5
  • Wie man Daten anhält, um in Java zu postgresql
  • Bash -Hintergrundprozessmanagement verleihen
  • Grundlagen der Computermathematik: Binär, Dezimal, hexadezimal, Oktal