Ich bin auf der Suche nach einem Rechner, der Berechnungen im Terminal selbst ohne zusätzliche Präfixe und Suffixe durchführen kann.
Beispiel: Wenn ich im Terminal so etwas wie 10000-9000 eingetippt habe, sollte die Antwort 1000 lauten.
Ich sage noch einmal, ich brauche nur einen schnellen Taschenrechner im Terminal, ohne dass irgendwelche Zeichen hinzugefügt werden. Ich weiß, wenn ich zu Python wechsle, kann es das, aber ich möchte es nicht so.
command_not_found
Haken, und versucht , Fütterung , den Befehlsbc
/calc
/ was auch immer , wenn es vage wie Mathematik aussieht. Es fühlt sich immer noch ein bisschen schmutzig an.Antworten:
Bash-Arithmetik
Eine andere mögliche Lösung besteht darin, eine einfache Funktion für die in Bash integrierte Arithmetik hinzuzufügen. Fügen Sie dies in Ihre
.bashrc
Datei ein, um Folgendes zu versuchen:Jetzt brauchen Sie nicht einmal
$((...))
mehr,=
was natürlich genug erscheint.Ersatz
Eine andere Sache , wenn Sie wollen noch schneller sein: Sie können es machen ersetzen
p
mit+
undx
mit*
. Das wird dafür funktionieren:Jetzt brauchst du nicht Shiftmehr, das Einzige, was du tun musst , ist
=
Rechnen.Hexadezimale Ausgabe
Die Ausgabe kann auf Wunsch sowohl dezimal als auch hexadezimal erfolgen. ( Hinweis : Die Verwendung der
x
Ersetzung widerspricht der0x...
Hex-Syntax.)Beispiel:
Verwenden
bc
Wenn Sie etwas fortgeschrittenere Berechnungen wünschen, können Sie es
bc
so weiterleiten:Die von bereitgestellten Funktionen
bc
sind wie folgt (und können vonman bc
) gefunden werden:Es unterstützt aber
if
auchfor
,while
und Variablen wie eine Programmiersprache, wenn es besser ist, in eine Datei zu schreiben, wenn Sie das möchten.Denken Sie daran, dass es
p
undx
in Funktions- / Variablennamen ersetzen wird . Es kann besser sein, nur die Ersetzungen zu entfernen.Verwenden
gcalccmd
Sie können den Funktionsaufruf
gcalccmd
(vongnome-calculator
) auch folgendermaßen ausführen:Die verfügbaren Funktionen scheinen (direkt aus dem Quellcode entnommen )
==
gleichwertige Funktionen zu sein:quelle
gcalccmd
funktioniert nicht ganz richtig. Es zeigt sichError 3
wahrscheinlich aufgrund dieses verirrten Leerzeichens. Allerdings funktionierte dieses leicht modifizierte perfekt für mich:echo -e "$calc\nquit"| gcalccmd | sed "s:^> ::g"
function = { R -q --vanilla -e "$@" | grep -E '[^>](.*)' -o -x --color=never }
= 2 + 0x20
34 (0x22)
Sie können einfache Ganzzahlarithmetik nativ in Bash ausführen, indem Sie die
((...))
Syntax verwenden, zEs gibt auch den
bc
Taschenrechner, der arithmetische Ausdrücke auf Standardeingabe akzeptieren kannDas
bc
Programm kann auch Gleitkomma-Arithmetik ausführenquelle
calc()
NL{
NLecho "$@" | bc
NL}
einfügen, wobei NL eine neue Zeile ist. Dann können Siecalc 1234 + 768
(prints2002
) oder eine andere Formel eingeben,bc
die interpretiert werden kann. Sie können natürlich jeden Funktionsnamen verwenden, ich dachte nur, dascalc
passt gut zu dem, was dies tut.echo
:bc <<< "2*2"
Sie können verwenden
calc
. Wird nicht standardmäßig installiert, kann jedoch mit dem folgenden Befehl schnell installiert werden:Nach der Installation können Sie eine beliebige Berechnung durchführen:
Weitere Informationen finden Sie in der Manpage
quelle
man calc
undcalc help
sagt alles.calc help builtin
, um eine Liste der unterstützten Funktionen zu sehen, wiesin()
Leider gibt es keinen "einfacheren" Weg, dies zu tun. Die interaktive Python - Schnittstelle auf der Kommandozeile ist am besten geeignet für das, was Sie brauchen, denn im Gegensatz zu
apcalc
\,python
ist enthalten in Ubuntu. Ich bin mir nicht sicher, obbc
es noch enthalten ist, aber Python ist der absolute Favorit für dieses Zeug.Sie können die interaktive
python
Schnittstelle einfach in der Befehlszeile ausführen und dann auf diese Weise rechnen. Das können Sie als Taschenrechner verwenden.Dazu öffnen Sie das Terminal, geben ein
python
und Enterdrücken dann die Taste.Dann wird in der Python - Eingabeaufforderung , die nach oben zeigt, können Sie Ihre mathematische in eingeben. Zum Beispiel
10000 - 9000
. Die nächste Zeilenausgabe ist das Ergebnis.Wenn Sie meinen, etwas, wo Sie nur das Terminal laden und dies tun können ...
... dann nein, es gibt keine Möglichkeit, dies nur im Terminal ohne irgendetwas anderes zu tun , da Bash solche numerischen Argumente nicht verarbeitet.
quelle
ipython
ist es ein bisschen nützlicher als die Standard-Python-Shell, wenn es darum geht, Berechnungen und dergleichen durchzuführen.Ich rate Ihnen, eine einfache Funktion für grundlegende Python-Berechnungen zu erstellen. So etwas in deinem
.bashrc
:Wenn Sie weiterführende Berechnungen durchführen möchten, können Sie die folgende Methode verwenden, mit der alle Funktionen des
math
Moduls importiert werden. (siehe hier für mehr Infos)(Hinweis: Da Python eine Programmiersprache ist, können einige Dinge seltsam erscheinen, z. B.
**
für Potenzen von und%
für Modulo.)Alternativ können Sie ein Python-Skript erstellen
calc
,Platzieren Sie es in einem Verzeichnis, das in der
PATH
Variablen enthalten ist, und setzen Sie das ausführbare Flag, um denselbencalc
Befehl wie oben zu erhalten (es ist nicht erforderlich, eine Bash-Funktion zu erstellen, um ein Python-Skript auszuführen).Wenn Sie eine reine Bash-Methode wünschen, verwenden Sie die Antwort von steeldriver. Diese Antwort ist nur dann wirklich nützlich, wenn Sie die erweiterten Funktionen (z. B. von
math
) benötigen , da Python im Vergleich zu Bash relativ langsam ist.Ich bin mir nicht sicher, ob dies Ihre "Umstellung auf Python, das kann es, und ich möchte es nicht so." Beachten Sie, dass Sie die interaktive Eingabeaufforderung nicht eingeben müssen und das Ergebnis in Bash verfügbar ist, sodass diese Antwort (zumindest für mich) gültig zu sein scheint.
quelle
c
,?
oder+
?) , so werden Sie es jeden Anschluss haben Sie öffnen.python2 -c "from __future__ import division; from math import *; print($*)"
sonst wird es immer tun Integer - Division, zB für diecalc 5/2
Sie erhalten würden2
von statt2.5
. Siehe hier als Referenz: stackoverflow.com/a/183870/202504pi
unde
. Ich bin der Meinung, dass es flexibler und portabler ist, dies als separates Skript zu formulieren. Hier ist eine einfache Zusammenfassung: gist.github.com/jasongeng/279eb396c01e74beb9efVerwenden Sie das Paket
gcalccmd
fromgnome-calculator
(> = 13.04) odergcalctool
(<13.04). Ich denke, das Paket ist standardmäßig installiertquelle
man gcalccmd
sagt: ein Konsolenrechner . Einfach, es ist genau das, was OP will .. :)./bash_aliases
like hinzuzufügen.alias calc='gcalccmd'
Wenn Sie einmalige Berechnungen (mit sofortiger Antwort) durchführen möchten, können Sie Folgendes hinzufügenalias calc='gnome-calculator -s'
:calc 2000/1300
odercalc 2+3
. In diesem Fall muss der Taschenrechner nicht beendet werden. Er gibt nur eine Antwort und Sie müssen nichts eingebenquit
.Hier ist ein schnelles Shell-Skript dafür:
Speichern Sie dies als "c", fügen Sie es irgendwo in Ihren Pfad ein (z. B. / bin) und markieren Sie es als ausführbar.
Von nun an können Sie Berechnungen im Terminal wie folgt ausführen:
quelle
echo "$@" | bc
stattdessen Leerzeichen zu verwenden, damit Sie die Berechnung natürlicher gestalten können=
anstelle vonc
für den Namen dieses Befehls? Mit Bash können Sie dies tatsächlich als Namen einer Funktion verwenden.~/bin
(Ihr Home - Verzeichnisbin
) einfügen und sicherstellen, dass/home/yourname/bin
sich diese in Ihrem befindenPATH
.Hier ist eine Modifikation des entsprechenden Teils von
/etc/bash.bashrc
(unter Ubuntu 10.04), die dencommand_not_found
Handler so modifiziert , dass der Ausdrucksauswerter der Shell ausgeführt wird, wenn das erste Zeichen des unbekannten Befehls eine Zahl oder-
oder ist+
.Auf diese Weise können Sie jede beliebige Shell-Arithmetik ausführen. Eine Liste der arithmetischen Operatoren finden Sie unter http://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic .
Beachten Sie, dass Sie, wenn der Ausdruck, den Sie auswerten möchten, ein a enthält
*
, das*
mit\
oder die Anführungszeichen in Anführungszeichen setzen müssen, da die Shell die Dateinamenerweiterung vornimmt, bevor Sie entscheiden, welcher Befehl ausgeführt werden soll. Gleiches gilt für andere Betreiber wie>>
.Setzen Sie diese in Ihre
~/.bashrc
, geben Sie. ~/.bashrc
und probieren Sie es aus.Beispielausgabe: (Ich schreibe
cta
einen Tippfehler, um zu testen, ob unser neuer command_not_found-Handler weiterhin versucht, nach unbekannten Befehlen zu suchen.)quelle
echo $(( $@ ))
, in eine andere ändern und stattdessen eines der erweiterten Taschenrechnerprogramme ausführen, die von anderen Antwortenden erwähnt wurden und deren Argumente in der Befehlszeile stehen.Eine andere Lösung, die ich hier nicht gesehen habe, ist Qalculate (qalc) .
für die CLI-Version,
für die GUI.
Es hat eine Reihe von Funktionen wie:
20 m / s * 12 h = 864 kilom
pi
,e
,c
,avogadro
sin(pi) = 0
,gamma(4) = 6
,5! = 120
,log(1024, 2) = 10
(x + y)^2 = x^2 + 2xy + y^2
integrate 3*x^2 = x^3
,diff sin(x), pi
help convert
,help integrate
factorial(5)
undfaculteit(5)
.Sie sagen, Sie möchten es ohne Präfixe verwenden, nun ... Sie können es mit einem Präfix verwenden:
$ qalc 5 ft + 3 cm
(5 * foot) + (3 * centim) = 1.554 m
sowie es als Antwort ausführen.
quelle
dc
! Es ist Teil von coreutils, daher ist es unter OS X, Ubuntu und so ziemlich ALLEN anderen Betriebssystemen installiert. Es ist ein RPN-Rechner, wenn Sie diese also nicht mögen, ist es nichts für Sie.Die grundlegenden Befehle lauten wie folgt: (Die Manpage hat die gesamte Syntax, die ich nicht angegeben habe. Potenzierung, wer?)
Sie brauchen nur Leerzeichen zwischen Zahlen. Sie werden in allen anderen Fällen ignoriert.
Wenn Sie eine Zahl eingeben, wird sie an die Spitze des Stapels verschoben.
quelle
42 * 5
in ein Terminal eintippt und es die Antwort ausgeben lässt1+1
eines Terminals funktioniert so gut wie nie. Ihre Antwort ist also in OrdnungIch benutze Octave für solche Dinge: http://www.gnu.org/software/octave/
Es ist so ziemlich ein Matlab-Klon (entschuldigt, wenn dies eine übermäßige Vereinfachung ist), der im Terminal durch Eingabe von Octave verwendet werden kann. Installieren Sie sudo apt-get install octave
Es ist nicht ganz das, was Sie wollen, aber ich dachte, ich würde es als Alternative zu Python hinzufügen.
Anwendungsbeispiel:
quelle
Ich mag wcalc sehr. Es ist ein wissenschaftlicher Kommandozeilenrechner. Einfach im Ubuntu Software Center zu finden oder einfach apt-get verwenden.
Es akzeptiert Kommandozeilenargumente und hat den "Shell" -Modus:
Und wenn sich jemand wie ich im Ingenieurwesen befindet, können Sie GNU Octave nutzen. Es kann alles Mögliche tun, grafisch darstellen und gleichzeitig Gleichungen lösen. Außerdem ist es eine kostenlose Alternative zu Matlab
quelle
=() { wcalc "$@" }
Ein einfacher Weg ist, Python aufzurufen.
Beispiel:
quelle
python -c 'import math;print math.log(2)'
Was ich gefunden habe, ist, ich kann expr, bc oder eingebauten Shell-Optionen nicht vertrauen. Daher habe ich Perl verwendet, das normalerweise in * Linux-Distributionen installiert ist
Die obige Berechnung subtrahiert $ VAL1 von $ VAL2 und gibt ohne Dezimalstellen aus (0f)
Die Verwendung von Perl bietet folgende Vorteile: (Einzelheiten zu den Vor- und Nachteilen finden Sie hier )
quelle
Sie können Ihrer .bashrc-Datei folgende Funktion hinzufügen:
Beachten Sie, dass die
-l
Flagge sehr wichtig ist. Ohne sie Verwendungbc
gibt5 / 2 = 2
.Wie oben erwähnt, können Berechnungen mit dem
=
Vorzeichen vor der Formel durchgeführt werden.quelle
Sie können auch awk verwenden , um einige arithmetische Berechnungen am Terminal durchzuführen.
quelle
benutze den "bc" Befehl und dann kannst du rechnen
Beispiel
Zur Verwendung
bc
ohne Garantiehinweis in das Terminal schreibenbc -q
Beispiel
quelle
Sie können bind und bash C-aund verwenden C-e, um die Ausgabe zu steuern. Führen Sie dies beispielsweise in Ihrer Shell aus:
Geben Sie nun eine arithmetische Operation wie 10 + 15 ein und drücken Sie Ctrl+ J:
Du wirst das bekommen. Nun, wie geht das?
bind
Dieser Befehl ändert die Bindung Ihrer Bash wie Tastenkombinationen.\C-j
Dies ist die Bash-Entsprechung zu Strg + J. Dies ist die Tastenkombination, die wir unserem Befehl hinzufügen möchten.\C-a
Dies bringt uns zum Anfang der Linie.echo $((
das schreibtecho $((
am anfang.\C-e
bringt uns ans Ende der Linie))
schließt unsere vorherige Klammer\C-m
Dies entspricht der Return-Taste.Sie können dies in Ihre
~/.inputrc
Datei schreiben :Natürlich gelten auch die anderen Antworten! Nur ein bisschen optimiert:
"\C-j": "\C-aecho " \C-e " | bc \C-m"
"\C-j": "\C-acacl \C-m"
"\C-j": "\C-apython3 -c "print( \C-e )" \C-m"
Sie können Strg + J nach Belieben ändern, aber denken Sie daran, es nicht für etwas zu ändern, das bereits eine Bindung hat;).
Ressource:
quelle
In der Vergangenheit habe ich
wcalc
ein kleines Programm namens verwendete
, nach dem man kaum googeln kann. Dazu verwende ich ein Python-Skript, das einige Funktionene
wie die eckigen Klammern verwendet.wcalc
ist immer noch nett, weil es willkürliche Präzision und Einheitenumrechnung kann, aber ich benutze diese Funktionen fast nie.So verwenden Sie es (vorausgesetzt, das Skript wurde gespeichert
e
und irgendwo im$PATH
):quelle
Es gibt nur einen Schritt, um genau das zu erreichen, was Sie wollen. Alles, was Sie tun müssen, ist die
shell
für Ihr Konto auf/bin/bc
.quelle
Sie können auch die
printf
eingebaute Shell verwenden, um arithmetische Berechnungen am Terminal durchzuführen.Beispiel:
quelle
Sie können den Python-Interpreter zur Berechnung verwenden. Hier ist ein Tutorial, wie das geht .
Python 2 und Python 3 werden standardmäßig in Ubuntu installiert.
quelle
Erstellen Sie einen Terminalrechner
Fügen Sie Folgendes in Ihre .bashrc-Datei ein
Oder führen Sie es an der Shell-Eingabeaufforderung aus. Jetzt funktioniert "calc" aus der Shell wie folgt:
Alle Funktionen mit einem "(" oder ")" müssen in Anführungszeichen gesetzt werden.
quelle