Kann ich in Bash grundlegende Mathematik lernen?


Antworten:


21

Tippen Sie einfach bcin das Terminal. Dann tippe das ganze Mathe-Zeug danach ein.

bcsteht für " b asic c alculator"

Geben Sie dann ein quitund drücken Sie die Eingabetaste, um den Vorgang zu beenden.


2
Nur zur Verdeutlichung wäre es so: Echo 25-5 | bc
Medhat Helmy

Bei einigen mathematischen Problemen müssen Sie sie möglicherweise in Anführungszeichen setzen, z. B.echo '0.6 * 12' | bc
Goose

Möglicherweise müssen Sie auch eine Skalierung hinzufügen, damit die Gleitkommapräzision funktioniert, dhecho "scale=2;557/3672" | bc
CpILL

60

Wenn wir wirklich von Bash sprechen, nicht von Bourne Shell (sh) oder anderen Shells, ist es einfach.

Bash kann grundlegende Ausdrücke mit $ ((expression)) berechnen und hier ist ein Beispiel, wie Sie es verwenden möchten:

 a = 3
 b = 4
 c = $ ((7 * a + b))
 echo $ c

oder für den interaktiven Gebrauch einfach

 echo $ ((7 * 3 + 4))

Es scheint ein richtiger Schlag zu sein, da das funktioniert. Ich schaue in einen meiner Universitätscluster
Kurru

4
Die $((expression))Syntax ist Teil des POSIX- shStandards und abgeleitet von ksh.
Geekosaurier

6
Bash kann nur Ganzzahlen rechnen. Es kann Kommaarithmetik nicht schwimmend wie ksh93 oder zsh
fpmurphy

3
Dies hätte die akzeptierte Antwort sein sollen.
Andreas Hartmann

10

Es gibt eine Reihe von Befehlszeilenprogrammen für einfache Berechnungen:

$ expr 100 \* 4
400

$ echo '100 * 4' | bc
400

um nur zwei von ihnen zu nennen. Seien Sie vorsichtig bei der Multiplikation, * als würde die Shell versuchen, sie als Platzhalter zu interpretieren.



7

Nun, Ihre Frage ist beantwortet, aber beachten Sie Folgendes:

Die meisten Linux-Distributionen haben Python vorinstalliert. Warum also nicht?

Tipp einfach

python

im Terminal und dann machen Sie alle Arithmetik, die Sie wollen, wie

2+2

Gibt 4 aus :)

Sie können dies auch direkt vom Terminal aus mit dem -cPython-Argument tun .

python -c 'print 2+2'

Auf meinem Computer pythondauert das Eingeben fast zwei Sekunden. Ziemlich ärgerlich, wenn Sie nur etwas Einfaches wie 2 + 2 tun möchten.
ShreevatsaR

Verwenden Sie python3, wenn Sie keine Float-Rundung wünschen. zB 2 / 30(Python: 0) (python3: 0.06666666666666667)
hrvoj3e

und wenn Sie python3 installiert haben, wollen aber Rundung, Verwendung 2//30oderint(2/30)
mazunki

3

Oder Ruby. :)

Obwohl es möglicherweise nicht vorinstalliert ist, ist es ziemlich schnell.

Geben Sie irbdann ein 2+2.

Oder nur ruby -e 'p 2+2'


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.