Szukam kalkulatora, który może wykonywać obliczenia w samym terminalu bez żadnych dodatkowych prefiksów i sufiksów.
Na przykład: jeśli wpiszesz w terminalu coś takiego jak 10000-9000, odpowiedź powinna pojawić się jako 1000.
Jeszcze raz mówię: potrzebuję tylko szybkiego kalkulatora w terminalu, bez żadnych znaków. Wiem, że jeśli przestawię się na Python, może to zrobić, ale nie chcę tego w taki sposób.
command_not_found
hakiem i spróbuj karmienia poleceniebc
/calc
/ cokolwiek jeśli wygląda niewyraźnie jak matematyki. Jednak nadal jest trochę brudny.Odpowiedzi:
Arytmetyka Bash
Innym możliwym rozwiązaniem jest dodanie prostej funkcji do wbudowanej arytmetyki Bash. Umieść to w swoim
.bashrc
pliku, aby spróbować:Więc teraz już nie potrzebujesz
$((...))
,=
co wydaje się dość naturalne.Zastąpienie
Inną rzeczą, jeśli chcesz być jeszcze szybciej: można je zastąpić
p
z+
ix
z*
. To zadziała do tego:Teraz już nawet nie potrzebujesz Shift, jedyne, co jest
=
przed arytmetyką.Wyjście szesnastkowe
W razie potrzeby dane wyjściowe mogą być wyświetlane zarówno w systemie dziesiętnym, jak i szesnastkowym. ( Uwaga : użycie
x
podstawienia spowoduje konflikt ze0x...
składnią szesnastkową)Przykład:
Za pomocą
bc
Jeśli chcesz nieco bardziej zaawansowanych obliczeń, możesz odpowiednio potokować
bc
:Funkcje zapewniane przez
bc
są następujące (i można je znaleźć wman bc
):Wspiera on także
if
,for
,while
i zmienne, takie jak język programowania ale jeśli może lepiej byłoby napisać do pliku jeśli chciałeś to.Należy pamiętać, że będzie on zastąpić
p
ix
w funkcji / nazw zmiennych. Lepiej po prostu usunąć zamienniki.Za pomocą
gcalccmd
Możesz także wykonać wywołanie funkcji
gcalccmd
(zgnome-calculator
) w następujący sposób:Dostępne funkcje wydają się być (wzięte bezpośrednio z kodu źródłowego ), co
==
oznacza równoważne funkcje:źródło
gcalccmd
nie działa całkiem dobrze. Pokazuje toError 3
prawdopodobnie z powodu tej zbłąkanej białej spacji. Jednak ten nieco zmodyfikowany działał dla mnie idealnie:echo -e "$calc\nquit"| gcalccmd | sed "s:^> ::g"
function = { R -q --vanilla -e "$@" | grep -E '[^>](.*)' -o -x --color=never }
= 2 + 0x20
34 (0x22)
Możesz wykonać prostą arytmetykę liczb całkowitych w trybie bash przy użyciu
((...))
składni, npIstnieje również
bc
kalkulator, który może przyjmować wyrażenia arytmetyczne na standardowym wejściubc
Program może zrobić arytmetyki zmiennoprzecinkowej orazźródło
calc()
NL{
NLecho "$@" | bc
NL,}
gdzie NL jest znakiem nowej linii. Następnie możesz wpisaćcalc 1234 + 768
(wydruki2002
) lub dowolną inną formułę, którabc
może interpretować. Możesz oczywiście użyć dowolnej nazwy funkcji, pomyślałem, żecalc
dobrze pasuje do tego, co to robi.echo
:bc <<< "2*2"
Możesz użyć
calc
. Nie jest instalowany domyślnie, ale można go szybko zainstalować za pomocą następującego polecenia:Po zainstalowaniu możesz wykonać dowolne obliczenia:
Aby uzyskać więcej informacji, zobacz jego stronę podręcznika
źródło
man calc
icalc help
mówi wszystko.calc help builtin
wyświetlana jest lista obsługiwanych funkcji, takich jaksin()
Niestety nie ma „łatwiejszego” sposobu na zrobienie tego. Interaktywny interfejs python w wierszu poleceń jest najlepiej dostosowany do potrzeb, ponieważ w przeciwieństwie do
apcalc
\,python
jest zawarty w Ubuntu. Nie jestem jednak pewien, czybc
nadal jest uwzględniony, jednak python jest ulubionym faworytem do tych rzeczy.Możesz po prostu uruchomić interaktywny
python
interfejs w wierszu poleceń, a następnie wykonać matematykę w ten sposób. Możesz użyć tego jako kalkulatora.Aby to zrobić, otwórz terminal, wpisz
python
, a następnie naciśnij Enterprzycisk.Następnie w wierszu Pythona, który przedstawia się, można wpisać matematyki. Na przykład
10000 - 9000
. Wynik następnego wiersza jest wynikiem.Jeśli masz na myśli coś, w którym po prostu ładujesz terminal i możesz to zrobić ...
... więc nie ma sposobu, aby to zrobić tylko w terminalu bez niczego innego, ponieważ Bash nie obsługuje takich argumentów liczbowych.
źródło
ipython
Nawiasem mówiąc , jest nieco bardziej przydatny niż standardowa powłoka Pythona, jeśli chodzi o wykonywanie obliczeń i tym podobne.Radzę ci stworzyć prostą funkcję do podstawowych obliczeń Pythona. Coś takiego w twoim
.bashrc
:Jeśli chcesz zrobić bardziej zaawansowaną matematykę, możesz użyć poniższej, która importuje wszystkie funkcje
math
modułu. (zobacz tutaj, aby uzyskać więcej informacji)(Uwaga: Ponieważ Python jest językiem programowania, niektóre rzeczy mogą wydawać się dziwne, np.
**
Dla mocy i%
modulo)Alternatywnie możesz utworzyć skrypt w języku Python
calc
,umieść go w katalogu zawartym w
PATH
zmiennej i ustaw jego flagę wykonywalną, aby uzyskać takie samocalc
polecenie jak powyżej (nie trzeba tworzyć funkcji Bash, aby uruchomić skrypt w języku Python).Jeśli chcesz zastosować metodę w czystej wersji Bash, użyj odpowiedzi steeldriver. Ta odpowiedź jest naprawdę przydatna tylko wtedy, gdy potrzebujesz bardziej zaawansowanych funkcji (tj. Od
math
), ponieważ Python jest stosunkowo wolny w porównaniu z Bash.Nie jestem pewien, czy to zepsuje „przejście na Python, może to zrobić i nie chcę tego w taki sposób”. Uwaga, ale nie trzeba wprowadzać interaktywnego monitu, a wynik jest dostępny w Bash, więc ta odpowiedź wydaje się poprawna (przynajmniej dla mnie).
źródło
c
,?
lub+
?), więc trzeba go za każdym terminalu otwarciu.python2 -c "from __future__ import division; from math import *; print($*)"
inaczej będzie zawsze podział całkowitą, np dlacalc 5/2
dostaniemy2
zamiast2.5
. Zobacz tutaj w celach informacyjnych: stackoverflow.com/a/183870/202504pi
ie
. Wydaje mi się, że umieszczenie tego jako osobnego skryptu jest bardziej elastyczne i przenośne. Oto prosty sens: gist.github.com/jasongeng/279eb396c01e74beb9efUżyj pakietu
gcalccmd
fromgnome-calculator
(> = 13.04) lubgcalctool
(<13.04). Myślę, że pakiet jest instalowany domyślnieźródło
man gcalccmd
mówi: kalkulator konsoli . Po prostu jest dokładnie tym, czego chce OP .. :)./bash_aliases
podobnyalias calc='gcalccmd'
lub jeśli chcesz dokonać obliczeń jednorazowych (z natychmiastową odpowiedź), można dodaćalias calc='gnome-calculator -s'
- Wykorzystanie tego ostatniego:calc 2000/1300
lubcalc 2+3
. W takim przypadku nie ma potrzeby wychodzenia z kalkulatora - po prostu daje odpowiedź i nie trzeba pisaćquit
.Oto szybki skrypt powłoki dla tego:
Zapisz to jako „c”, następnie umieść go gdzieś na swojej ścieżce (np. / Bin), a następnie oznacz go jako wykonywalny.
Od teraz możesz uruchamiać obliczenia w terminalu w następujący sposób:
źródło
echo "$@" | bc
zamiast tego, abyś mógł bardziej naturalnie wstawiać spacje do obliczeń=
zamiastc
nazwy tego polecenia? Bash faktycznie pozwala ci używać tego jako nazwy funkcji.~/bin
(swoim katalogu domowymbin
) i upewnić się, że/home/yourname/bin
są w twoimPATH
.Oto modyfikacja odpowiedniej części
/etc/bash.bashrc
(w Ubuntu 10.04), która zmodyfikujecommand_not_found
moduł obsługi, aby uruchomić ewaluator wyrażeń powłoki, jeśli pierwszym znakiem nieznanego polecenia jest liczba lub-
lub+
.W ten sposób będziesz mógł wykonać dowolną arytmetykę powłoki; zobacz http://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic, aby uzyskać listę operatorów arytmetycznych.
Zauważ, że jeśli wyrażenie chcesz ocenić zawiera
*
, trzeba zacytować*
z\
lub cytaty ponieważ powłoka zrobi rozszerzenie nazwy pliku, przed podjęciem decyzji, które polecenie do uruchomienia. To samo dotyczy innych operatorów, takich jak>>
.Włóż to do swojego
~/.bashrc
, a następnie wpisz. ~/.bashrc
i wypróbuj.Przykładowe dane wyjściowe: (Piszę
cta
, literówka, tylko po to, aby sprawdzić, czy nasz nowy moduł obsługi polecenia_nie_found nadal będzie szukał nieznanych poleceń).źródło
echo $(( $@ ))
i zmienić go na zamiast tego uruchomić jeden z bardziej zaawansowanych programów kalkulacyjnych, o których wspominali inni autorzy, którzy biorą swoje argumenty w wierszu poleceń.Innym rozwiązaniem, o którym nie wspomniałem tutaj, jest Qalculate (qalc) .
dla wersji CLI,
dla GUI.
Ma wiele funkcji, takich jak:
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)
ifaculteit(5)
.Mówisz, że chcesz go używać bez prefiksów, cóż ... możesz go używać z prefiksem:
$ qalc 5 ft + 3 cm
(5 * foot) + (3 * centim) = 1.554 m
a także uruchamianie go jako repl.
źródło
dc
! Jest częścią coreutils, więc jest zainstalowany na OS X, Ubuntu i prawie WSZYSTKO. To kalkulator RPN, więc jeśli ci się nie podobają, to nie jest dla ciebie.Bardzo podstawowe polecenia są następujące (manpage ma całą składnię, której nie uwzględniłem. Potęgowanie, ktoś?)
Potrzebujesz tylko spacji między liczbami. Są one ignorowane we wszystkich innych przypadkach.
Wpisanie liczby wypycha ją na górę stosu.
źródło
42 * 5
w terminalu, i przekaż odpowiedź1+1
w terminalu prawie nigdy nie zadziała. Więc twoja odpowiedź jest w porządkuUżywam Octave do tego typu rzeczy: http://www.gnu.org/software/octave/
Jest to w zasadzie klon matlab (przeprasza, jeśli jest to nadmierne uproszczenie), którego można użyć w terminalu, wpisując oktawę. Zainstaluj sudo apt-get install octave
Nie jest to dokładnie to, czego chcesz, ale pomyślałem, że dodam go jako alternatywę dla Pythona.
Przykładowe użycie:
źródło
Bardzo lubię wcalc. To kalkulator naukowy z linii poleceń. Łatwo go znaleźć w Centrum oprogramowania Ubuntu lub po prostu użyj apt-get.
Akceptuje argumenty wiersza poleceń, a także ma tryb „powłoki”:
A jeśli ktoś jest inżynierem, tak jak ja, możesz skorzystać z GNU Octave. Potrafi robić różne rzeczy, wykresy, rozwiązywanie równań. Plus to darmowa alternatywa dla Matlaba
źródło
=() { wcalc "$@" }
Prostym sposobem jest wywołanie Pythona.
Przykład:
źródło
python -c 'import math;print math.log(2)'
Odkryłem, że nie mogę ufać opcjom expr, bc lub wbudowanym Shell. Dlatego użyłem Perla, który normalnie byłby zainstalowany w dystrybucji * Linux
Powyższe obliczenia odejmują $ VAL1 od $ VAL2 i drukują bez miejsc dziesiętnych (0f)
Korzyści z korzystania z Perla to (szczegóły na temat zalet i wad wymienionych tutaj )
źródło
Możesz dodać następującą funkcję do swojego pliku .bashrc:
Pamiętaj, że
-l
flaga jest bardzo ważna. Bez tego użyciebc
daje5 / 2 = 2
.Jak wspomniano powyżej, obliczenia można wykonać za pomocą
=
znaku przed wzorem.źródło
Możesz także użyć awk, aby wykonać obliczenia arytmetyczne na terminalu,
źródło
użyj polecenia „bc”, a następnie możesz wykonać obliczenia
przykład
Aby korzystać
bc
bez gwarancji, napisz w terminalubc -q
przykład
źródło
Możesz użyć bind i bash C-aoraz C-ekontrolować dane wyjściowe. Na przykład wykonaj to w swojej powłoce:
Teraz wpisz dowolną operację arytmetyczną, taką jak 10 + 15 i naciśnij Ctrl+ J:
Dostaniesz to. Jak to się robi?
bind
to polecenie zmienia wiązanie twojego basha, podobnie jak klawisze skrótów.\C-j
to jest odpowiednik Ctrl + J, to jest kombinacja klawiszy, którą chcielibyśmy dodać do naszej komendy.\C-a
zabiera nas to na początek linii.echo $((
to piszeecho $((
na początku.\C-e
zabiera nas do końca linii))
zamyka nasz poprzedni nawias\C-m
jest to odpowiednik klucza powrotu.Możesz zapisać to w swoim
~/.inputrc
pliku:Oczywiście inne odpowiedzi też są poprawne! Właśnie poprawiłem trochę:
"\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"
Możesz zmienić Ctrl + J na cokolwiek zechcesz, ale pamiętaj, staraj się nie zmieniać tego na coś, co już ma powiązanie;).
Ratunek:
źródło
W przeszłości korzystałem
wcalc
z małego programu,e
który jest prawie niemożliwy do znalezienia w Google. Teraz używam do tego skryptu Pythona, który korzysta z niektórych funkcji,e
takich jak nawiasy kwadratowe.wcalc
jest nadal fajny, ponieważ potrafi wykonywać dowolną precyzję i konwersję jednostek, ale prawie nigdy nie używam tych funkcji.Oto jak go użyć (zakładając, że skrypt został zapisany jako
e
i umieszczony gdzieś w$PATH
):źródło
Istnieje jeden krok, aby osiągnąć dokładnie to, czego chcesz. Wszystko, co musisz zrobić, to ustawić
shell
dla swojego konta na/bin/bc
.źródło
Możesz także użyć
printf
wbudowanej powłoki, aby wykonać obliczenia arytmetyczne na terminalu.Przykład:
źródło
Do obliczeń można użyć interpretera python. Oto samouczek, jak to zrobić .
Python 2 i python 3 są domyślnie instalowane w Ubuntu.
źródło
Utwórz kalkulator terminala
Umieść następujące elementy w pliku .bashrc
Lub uruchom go w wierszu poleceń powłoki. Teraz „calc” z powłoki będzie działał w następujący sposób:
Wszystkie funkcje ze znakiem „(” lub „)” muszą być ujęte w cudzysłów.
źródło