Rechner in der Bash



  • 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.


Anmelden zum Antworten