Rechner in der Bash
-
myprg $((3+4))
-
Für simple Rechnungen gibt es auch die arithmetic expansion: $(( 1 + 2 ))
oder: expr 1 + 2Vorteil: expr bzw. arithmetic expansion funktionieren in einer bash-shell immer, bc oder calc muss man erst installieren.
-
bc war was ich gesucht habe. calc ist jedoch viel besser. "calc 3+7" geht nämlich auf der Shell.
Vielen Dank

-
Stimmt, "echo $((156/5))" geht auch.
-
----- schrieb:
Stimmt, "echo $((156/5))" geht auch.
Statt "echo $((156/5))" geht auch "expr 156 / 5", was manchmal einfacher zu lesen ist.
-
Ich verwend Python. Auszug aus meiner .bashrc:
? () { python -c "print $*"; }damit geht dann:
$ ? 2+3 5 $ ? 2**5 32 $ ? "[x**2 for x in range(10)]" [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
-
Blue-Tiger schrieb:
Ich verwend Python. Auszug aus meiner .bashrc:
? () { python -c "print $*"; }damit geht dann:
$ ? 2+3 5 $ ? 2**5 32 $ ? "[x**2 for x in range(10)]" [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]erinnert mich an BASIC damals, da ging das auch

-
Blue-Tiger schrieb:
Ich verwend Python. Auszug aus meiner .bashrc:
... $ ? "[x**2 for x in range(10)]" [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]Kann man da eigentlich irgendwie die Anführungszeichen los werden?
-
------ schrieb:
bc war was ich gesucht habe. calc ist jedoch viel besser. "calc 3+7" geht nämlich auf der Shell.
Vielen Dank

calc ist bei meinem System nicht installiert, aber bc ist eigentlich ueberall dabei. Wie bc mit Kommandpziele funzt, wurde aber schon gesagt.
-
µngbd schrieb:
Blue-Tiger schrieb:
Ich verwend Python. Auszug aus meiner .bashrc:
... $ ? "[x**2 for x in range(10)]" [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]Kann man da eigentlich irgendwie die Anführungszeichen los werden?
Die bash will die Klammern selbst parsen, wenn du die escapst gehts:
$ ? [x**2 for x in range\(10\)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]Vllt. auch noch witzig: Wenn man die Zeile umaendert kann man mathematische Funktionen/Konstanten verwenden:
? () { python -c "from math import *; print $*"; }Dann klappt auch
$ ? "sin(pi/2)" 1.0
-
Blue-Tiger schrieb:
Die bash will die Klammern selbst parsen, wenn du die escapst gehts:
[...]Daran liegts!
Schade eigentlich. Die Sache gefällt mir aber auch so.
Die Anführungszeichen werd ich schon noch los...Hmm, aber blöd eigentlich: wenn es ein
$*gibt, dann hat die Bash die Zeile (und damit die Klammern) schon geparst. Kann man die nicht irgendwie ein wenig more lazy machen?
-
Blue-Tiger schrieb:
Ich verwend Python. Auszug aus meiner .bashrc:
? () { python -c "print $*"; }sehr nette Idee. Bei zsh könnte man zumindest noch mit noglob die wildcard-auswertung ausstellen. Ich hoffe es gibt auch etwas ähnliches, dass den anderen krempel wie ()?!& unterdrückt.