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.

DCIndieDev
quelle
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))
Seikku Kaita
quelle
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.

Majenko
quelle
9

Ein anderes ist AWK:

awk 'BEGIN {print 4 + 3 / 12}'
Bis auf weiteres angehalten.
quelle
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'
Marcus Maxwell
quelle
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'

Wirbelwind
quelle
0

Perl ist eine weitere Option:

perl -E 'say 1/7'

Ausgänge

0.142857142857143
Bis auf weiteres angehalten.
quelle