Ich muss Variablen und ich möchte den Wert von einem geteilt durch den anderen finden. Welche Befehle soll ich dazu verwenden?
linux
math
command-line
divide
kman99
quelle
quelle
Antworten:
Umgeben Sie in der Bash-Shell arithmetische Ausdrücke mit
$(( ... ))
Obwohl ich denke, dass Sie auf ganze Zahlen beschränkt sind.
quelle
2.50000000000000000000
Diese Option '-l' in 'bc' ermöglicht schwebende Ergebnisse
quelle
-l
Sie standardmäßig 20 Dezimalstellen und es wird eine Mathematikbibliothek geladen, die zusätzliche Funktionen wie Sinus definiert. Um die Anzahl der Dezimalstellen explizit anzugeben, stellen Sie dem Ausdruckscale={numPlaces};
(auch) voran, wie in der Antwort von @ user1504475 gezeigt. Mit anderen Worten: Dies-l
ist eine bequeme Alternative zur Angabescale=20;
, verursacht jedoch Leistungskosten aufgrund des Ladens der Bibliothek. Die tatsächlichen Auswirkungen scheinen jedoch vernachlässigbar zu sein.Besser ist es, "bc" zu verwenden, einen beliebigen Präzisionsrechner.
Ex:
wobei "scale = 5" die Genauigkeit ist.
kommt mit mehreren Anwendungsbeispielen.
quelle
scale
Sie die-l
Standardeinstellungen nicht auf Ganzzahldivision - es sei denn, Sie geben an , wie @raytrace unten feststellt, dass Sie anscheinend standardmäßig 20 Dezimalstellen erhalten, aber auch eine Bibliothek mit zusätzlichen Funktionen laden.Ich bevorzuge immer noch die Verwendung von DC , einem RPN-Rechner. Eine schnelle Sitzung zum Teilen von 67 durch 18 mit 4-stelliger Genauigkeit würde also aussehen
Offensichtlich viel mehr verfügbar: man dc
quelle
man
: RPN = Reverse Polish Notation; Kurz gesagt: Sie geben zuerst die Operanden und dann den Operator ein. Eine Beendigungp
ist erforderlich, um das Ergebnis auszugeben. Die nicht interaktive Version der obigen Berechnung lautet :dc -e '4k 67 18 / p'
. Vorsichtsmaßnahme: Die Genauigkeit (mit{numPlaces}k
) wird nicht auf 0 gesetzt, dh auf eine ganzzahlige Division.Sie können awk verwenden , ein Dienstprogramm / eine Sprache für die Datenextraktion
zB für 1.2 / 3.4
quelle
In Bash können Sie Folgendes tun, wenn Sie in Ihrer Abteilung keine Dezimalstellen benötigen:
quelle
Ich gehe davon aus, dass Sie mit Linux-Konsole Bash meinen .
Wenn
X
undY
sind Ihre Variablen, gibt$(($X / $Y))
zurück, wonach Sie fragen.quelle
Beispiel für eine ganzzahlige Division mit bash, um $ a durch $ b zu teilen:
quelle
Etwas anderes könnten Sie mit der Antwort von raytrace tun. Sie können die Standardausgabe eines anderen Shell-Aufrufs mithilfe von Backticks verwenden, um dann einige Berechnungen durchzuführen. Zum Beispiel wollte ich die Dateigröße der Top 100 Zeilen aus einigen Dateien wissen. Die ursprüngliche Größe von
wc -c
ist in Bytes, ich möchte Kilobyte wissen. Folgendes habe ich getan:quelle
Sie sollten versuchen zu verwenden:
quelle
Sie können auch Perl -e verwenden
quelle
Ich hatte auch das gleiche Problem. Es ist einfach, Ganzzahlen zu teilen, aber Dezimalzahlen sind nicht so einfach. Wenn Sie 2 Zahlen wie 3.14 und 2.35 haben und die Zahlen dann teilen, lautet der Code Division =
echo 3.14 / 2.35 | bc
echo "$ Division". Die Anführungszeichen sind unterschiedlich. Seien Sie nicht verwirrt, es befindet sich direkt unter der Esc-Taste auf Ihrer Tastatur. DER EINZIGE UNTERSCHIED IST DER | bc und auch hier arbeitet echo als Operator für die arithmetischen Berechnungen anstelle des Druckens. Also hatte ich das Echo "$ Division" hinzugefügt, um den Wert zu drucken. Lassen Sie mich wissen, ob es für Sie funktioniert. Vielen Dank.quelle
some code here
die gerade in die akuten Akzente eingeschlossen wurden.