Gibt es so etwas, das grundlegende Operationen, einige integrierte Funktionen wie atan()und möglicherweise benutzerdefinierte Funktionen über Skripte unterstützt?
bcund dcsind die 2 Taschenrechner, die ich oft benutze, wenn ich Zugriff von einem Terminal benötige.
Beispiele
$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
Dann können Sie Ihre Fragen eingeben:
2
2
5+5
10
Wenn Sie fertig sind, können Sie mit einem Ctrl+ aussteigen C.
Probefahrt
Diese Taschenrechner sind ziemlich funktionsreich.
Skalierung
scale=5
193 * 1/3
64.33333
Gleichungen
principal=100
ir = 0.05
years = 5
futurevalue = principal * (1 + ir)^years
futurevalue
127.62800
Ihre Beispiele
8*6-4
44
8*(6-4)
16
calc
Wenn Sie etwas Interaktiveres wollen, gibt es calc.
Beispiel
$ calc
C-style arbitrary precision calculator (version 2.12.4.4)
Calc is open software. For license details type: help copyright
[Type "exit" to exit, or "help" for help.]
; 10+10
20
; 8*6-4
44
; 8*(6-4)
16
;
Sie können die Aufwärts- / Abwärtspfeile verwenden, um frühere Befehle durchzugehen, und es gibt auch eine interaktive Hilfe.
; help
Gibt Ihnen Folgendes:
For more information while running calc, type help followed by one of the
following topics:
topic description
----- -----------
intro introduction to calc
overview overview of calc
help this file
assoc using associations
builtin builtin functions
command top level commands
config configuration parameters
custom information about the custom builtin interface
define how to define functions
environment how environment variables effect calc
errorcodes calc generated error codes
expression expression sequences
file using files
history command history
interrupt how interrupts are handled
list using lists
mat using matrices
...
Da dies keine Ubuntu-spezifische Frage ist, können Sie einen Link zu Calc Upstream anstelle des Ubuntu-Pakets erstellen.
Mattdm
@mattdm - danke diesen Link hinzugefügt, ich habe den anderen Link einfach b / c verlassen Ich habe auf eine Manpage auf calc verlinkt, nicht unbedingt das Ubuntu-Paket.
slm
6
Es gibt viele Antworten auf Ihre Frage ...
Die einfachen, die Sie in der Shell tun könnten.
$ echo $((8*(6-4)))
16
Als spezielles Programm gibt es bc.
$ echo "8*(6-4)" | bc
16
Benutzerdefinierte Funktionen per Scripting? Nun, Shell-Skripte und bc haben sie beide in gewisser Weise. Kommt darauf an, wie weit du gehen willst.
Warum nicht Python? Es ist leicht zu lernen.
$ python
>>> from math import atan
>>> 8*(6-4)+atan(0)
16.0
Ich habe in letzter Zeit tatsächlich Python dafür verwendet, aber das ist der Grund, warum ich etwas anderes möchte. Es wird ärgerlich, für jede Funktion etwas importieren zu müssen. Ich hoffte mehr auf etwas Eigenständiges wie Speedcrunch ( i.imgur.com/Cn6GejG.png ), aber offensichtlich auf die Befehlszeile.
Lucas Phillips
1
Sie können das Importproblem lösen, indem Sie die Umgebungsvariable PYTHONSTARTUP definieren und Inhalte in die Datei importieren, auf die die Variable zeigt.
mkc
5
In zsh:
$ autoload zcalc # best in ~/.zshrc
$ zcalc
1> 8*(6-4)
16
2> $1*2
32
Hier ist ein kleiner Bash-Hack, mit dem Sie einfache Arithmetik direkt über die Befehlszeile ausführen können.
alias calc='set -o noglob; docalc'
function docalc { perl -e "print STDOUT $*, \"\\n\""; set +o noglob; }
Dann können Sie z.
calc 3 * 15 + 5
Leider spielt es nicht gut mit Klammern. (Wenn ich mich richtig erinnere, können Sie tcsh dazu bringen, diese auch zu akzeptieren, aber ich konnte bash nicht davon überzeugen.)
PS. Sie können sich bei der Arithmetik auf bash verlassen, indem Sie den perlAufruf durch ersetzen echo $(( $* )). Aber das gibt Ihnen eine ganzzahlige Division für 5/6usw. Perls Arithmetik ist nützlicher.
Alternative: Wenn Ihr einziges Rindfleisch mit Python das ist, was Sie brauchen, import mathist das Folgende Ihr Freund:
% alias calc='python -i -c "from math import *"'
% calc
>>> 5 * atan(0.25)
Eine andere Möglichkeit ist die Verwendung eines Interpreters wie Python 3:
$ python3
> from math import *
> 213/53*exp(0.8)/asin(3)
9.645423462356044
Haben Sie den Vorteil, dass Sie alles skripten können, es gibt bereits viele Funktionen (Sie können diese auch importieren, cmathwenn Sie komplexe Zahlen benötigen), Sie müssen in den meisten Fällen keine Genauigkeit festlegen und Python ist bereits auf den meisten Linux-Installationen installiert.
Python 3.x ist für einen generischen Taschenrechner besser als Python 2.x, da Python 3.x eine Gleitkommadivision durchführt, wenn das Ergebnis kein int ist.
$ python3
> 3/2
1.5
$ python2
> 3/2
1
Der größte Nachteil für mich ist zumindest, dass Floats nicht in der wissenschaftlichen Notation gedruckt werden, wenn sie nicht sehr groß oder klein sind, ohne eine Formatzeichenfolge:
Es gibt viele Antworten auf Ihre Frage ...
Die einfachen, die Sie in der Shell tun könnten.
Als spezielles Programm gibt es
bc
.Benutzerdefinierte Funktionen per Scripting? Nun, Shell-Skripte und bc haben sie beide in gewisser Weise. Kommt darauf an, wie weit du gehen willst.
Warum nicht Python? Es ist leicht zu lernen.
quelle
In
zsh
:quelle
Insekt hat sowohl web- als auch terminalbasierte Versionen:
quelle
Maxima CAS :
HTH
quelle
Hier ist ein kleiner Bash-Hack, mit dem Sie einfache Arithmetik direkt über die Befehlszeile ausführen können.
Dann können Sie z.
Leider spielt es nicht gut mit Klammern. (Wenn ich mich richtig erinnere, können Sie tcsh dazu bringen, diese auch zu akzeptieren, aber ich konnte bash nicht davon überzeugen.)
PS. Sie können sich bei der Arithmetik auf bash verlassen, indem Sie den
perl
Aufruf durch ersetzenecho $(( $* ))
. Aber das gibt Ihnen eine ganzzahlige Division für5/6
usw. Perls Arithmetik ist nützlicher.Alternative: Wenn Ihr einziges Rindfleisch mit Python das ist, was Sie brauchen,
import math
ist das Folgende Ihr Freund:quelle
Eine andere Möglichkeit ist die Verwendung eines Interpreters wie Python 3:
Haben Sie den Vorteil, dass Sie alles skripten können, es gibt bereits viele Funktionen (Sie können diese auch importieren,
cmath
wenn Sie komplexe Zahlen benötigen), Sie müssen in den meisten Fällen keine Genauigkeit festlegen und Python ist bereits auf den meisten Linux-Installationen installiert.Python 3.x ist für einen generischen Taschenrechner besser als Python 2.x, da Python 3.x eine Gleitkommadivision durchführt, wenn das Ergebnis kein int ist.
Der größte Nachteil für mich ist zumindest, dass Floats nicht in der wissenschaftlichen Notation gedruckt werden, wenn sie nicht sehr groß oder klein sind, ohne eine Formatzeichenfolge:
quelle