Saya mencari Kalkulator yang dapat melakukan perhitungan di terminal itu sendiri tanpa awalan dan sufiks tambahan.
Sebagai contoh: Jika saya mengetikkan sesuatu seperti 10000-9000 di terminal, jawabannya harus keluar sebagai 1000.
Sekali lagi saya katakan, saya hanya perlu kalkulator cepat di terminal, tanpa ada karakter yang ditambahkan. Saya tahu jika saya beralih ke Python, itu bisa melakukan itu, tetapi saya tidak menginginkannya.
command_not_found
hook, dan mencoba memberi makan perintah kebc
/calc
/ apa pun jika terlihat samar-samar seperti matematika. Meski begitu, masih terasa agak kotor.Jawaban:
Bash Aritmatika
Solusi lain yang mungkin adalah menambahkan fungsi sederhana untuk aritmatika bawaan Bash. Masukkan ini
.bashrc
ke file Anda untuk mencoba:Jadi sekarang, Anda bahkan tidak perlu
$((...))
lagi, hanya=
yang tampaknya cukup alami.Penggantian
Hal lain jika Anda ingin menjadi lebih cepat: Anda dapat membuatnya ganti
p
dengan+
danx
dengan*
. Ini akan bekerja untuk itu:Sekarang Anda bahkan tidak perlu Shiftlagi, satu-satunya hal
=
di depan aritmatika.Output heksadesimal
Output dapat ditampilkan dalam desimal dan heksadesimal, jika diinginkan. ( Catatan : menggunakan
x
subtitusi akan bertentangan dengan0x...
sintaks hex)Contoh:
Menggunakan
bc
Jika Anda ingin perhitungan yang sedikit lebih maju, Anda bisa membuatnya
bc
seperti:Fungsi-fungsi yang disediakan oleh
bc
adalah sebagai berikut (dan dapat ditemukan dariman bc
):Ini juga mendukung
if
,for
,while
dan variabel seperti bahasa pemrograman meskipun jika mungkin lebih baik untuk menulis ke file jika Anda ingin itu.Ingatlah bahwa itu akan menggantikan
p
danx
dalam fungsi / nama variabel. Mungkin lebih baik menghapus saja penggantian.Menggunakan
gcalccmd
Anda juga dapat membuat panggilan fungsi
gcalccmd
(darignome-calculator
) seperti:Fungsi yang tersedia tampaknya (diambil langsung dari kode sumber ),
==
menunjukkan fungsi yang setara:sumber
gcalccmd
tidak berfungsi dengan baik. Ini menunjukkanError 3
mungkin karena ruang putih yang tersesat itu. Namun yang sedikit dimodifikasi ini bekerja dengan baik untuk saya:echo -e "$calc\nquit"| gcalccmd | sed "s:^> ::g"
function = { R -q --vanilla -e "$@" | grep -E '[^>](.*)' -o -x --color=never }
= 2 + 0x20
34 (0x22)
Anda dapat melakukan aritmatika integer sederhana secara native di bash menggunakan
((...))
sintaks, misAda juga
bc
kalkulator, yang dapat menerima ekspresi aritmatika pada input standarThe
bc
Program dapat melakukan aritmatika floating point sertasumber
calc()
NL{
NLecho "$@" | bc
NL di}
mana NL adalah baris baru. Kemudian Anda dapat mengetikcalc 1234 + 768
(mencetak2002
), atau rumus lain apa pun yangbc
dapat menafsirkan. Anda tentu saja dapat menggunakan nama fungsi apa pun, saya hanya berpikir itucalc
cocok dengan apa yang dilakukannya.echo
:bc <<< "2*2"
Anda bisa menggunakannya
calc
. Tidak diinstal secara default, tetapi Anda dapat menginstalnya dengan cepat menggunakan perintah berikut:Setelah Anda menginstal, Anda dapat melakukan perhitungan apa pun yang Anda inginkan:
Untuk informasi lebih lanjut, lihat halaman manualnya
sumber
man calc
dancalc help
mengatakan segalanya.calc help builtin
untuk melihat daftar fungsi yang didukung sepertisin()
Sayangnya, tidak ada cara "lebih mudah" untuk melakukan ini. Antarmuka python interaktif pada baris perintah adalah yang terbaik cocok untuk apa yang Anda butuhkan, karena tidak seperti
apcalc
\,python
yang termasuk dalam Ubuntu. Saya tidak yakin apakahbc
masih termasuk, namun, python adalah favorit untuk hal ini.Anda bisa menjalankan
python
antarmuka interaktif di baris perintah, dan kemudian berhitung seperti itu. Anda dapat menggunakannya sebagai kalkulator.Untuk melakukan itu, Anda membuka terminal, ketik
python
, lalu tekan Entertombol.Kemudian, pada prompt python yang muncul, Anda dapat mengetikkan matematika Anda. Misalnya
10000 - 9000
,. Output baris berikutnya adalah hasilnya.Jika Anda maksudkan, sesuatu di mana Anda hanya memuat terminal dan dapat melakukan ini ...
... maka tidak ada tidak ada cara untuk melakukan ini hanya di terminal tanpa hal lain, karena Bash tidak menangani argumen numerik seperti itu.
sumber
ipython
ini sedikit lebih berguna daripada shell Python standar ketika datang untuk melakukan perhitungan dan sejenisnya.Saya menyarankan Anda untuk membuat fungsi sederhana untuk perhitungan Python dasar. Sesuatu seperti ini di Anda
.bashrc
:Jika Anda ingin melakukan matematika lebih lanjut, Anda dapat menggunakan yang berikut yang mengimpor semua
math
fungsi modul. (lihat di sini untuk info lebih lanjut)(Catatan: Karena Python adalah bahasa pemrograman, beberapa hal mungkin tampak aneh, misalnya
**
untuk kekuatan dan%
untuk modulo)Atau Anda dapat membuat skrip Python
calc
,letakkan di direktori yang termasuk dalam
PATH
variabel dan atur flag yang dapat dieksekusi untuk mendapatkancalc
perintah yang sama seperti di atas (tidak perlu membuat fungsi Bash untuk menjalankan skrip Python).Jika Anda menginginkan metode dalam Bash murni, gunakan jawaban steeldriver. Jawaban ini hanya benar-benar bermanfaat jika Anda memerlukan fungsi yang lebih maju (yaitu dari
math
), karena Python relatif lambat dibandingkan dengan Bash.Saya tidak yakin apakah ini memecah Anda "beralih ke python itu bisa melakukan itu & saya tidak menginginkannya sedemikian rupa." perhatikan, tetapi Anda tidak perlu memasukkan prompt interaktif dan hasilnya dapat diakses di Bash sehingga jawaban ini tampaknya valid (bagi saya, setidaknya).
sumber
c
,?
atau+
?) sehingga Anda akan memilikinya setiap terminal Anda membuka.python2 -c "from __future__ import division; from math import *; print($*)"
jika tidak, ia akan selalu melakukan pembagian integer, misalnya untukcalc 5/2
Anda dapatkan2
alih-alih2.5
. Lihat di sini untuk referensi: stackoverflow.com/a/183870/202504pi
dane
. Saya merasa menempatkan ini sebagai skrip terpisah lebih fleksibel dan portabel. Berikut adalah intisari sederhana untuk itu: gist.github.com/jasongeng/279eb396c01e74beb9efGunakan paket
gcalccmd
fromgnome-calculator
(> = 13.04) ataugcalctool
(<13.04). Saya pikir paket diinstal secara defaultsumber
man gcalccmd
mengatakan: kalkulator konsol . Sederhananya, itu persis seperti yang diinginkan OP .. :)./bash_aliases
sukaalias calc='gcalccmd'
atau jika Anda ingin membuat perhitungan satu kali (dengan jawaban instan), Anda dapat menambahkanalias calc='gnome-calculator -s'
- penggunaan yang terakhir:calc 2000/1300
ataucalc 2+3
. Dalam hal ini, tidak perlu keluar dari kalkulator - itu hanya memberi Anda jawaban dan Anda tidak perlu mengetikquit
.Berikut ini skrip shell cepat untuk ini:
Simpan ini sebagai "c", lalu letakkan di suatu tempat di jalur Anda (seperti / bin), lalu tandai itu dapat dieksekusi.
Mulai sekarang, Anda dapat menjalankan perhitungan di terminal seperti ini:
sumber
echo "$@" | bc
sebagai gantinya sehingga Anda dapat menempatkan spasi dalam perhitungan lebih alami=
bukanc
untuk nama perintah ini? Bash sebenarnya memungkinkan Anda menggunakan ini sebagai nama fungsi.~/bin
(direktori home Andabin
) dan memastikannya/home/yourname/bin
ada diPATH
.Berikut adalah modifikasi dari bagian yang sesuai dari
/etc/bash.bashrc
(pada Ubuntu 10.04) yang akan memodifikasicommand_not_found
penangan untuk menjalankan evaluator ekspresi shell jika karakter pertama dari perintah yang tidak diketahui adalah angka atau-
atau+
.Anda akan dapat melakukan aritmatika shell dengan cara ini; lihat http://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic untuk daftar operator aritmatika.
Perhatikan bahwa jika ekspresi yang ingin Anda evaluasi mengandung
*
, Anda harus mengutip*
dengan\
atau kutipan karena shell akan melakukan ekspansi nama file sebelum memutuskan perintah mana yang akan dijalankan. Hal yang sama untuk operator lain suka>>
.Masukkan ini ke dalam
~/.bashrc
, lalu ketikkan. ~/.bashrc
dan coba.Output sampel: (Saya mengetik
cta
, kesalahan ketik, hanya untuk menguji bahwa command_not_found handler baru kami masih akan mencoba mencari perintah yang tidak dikenal).sumber
echo $(( $@ ))
dan mengubahnya, sebagai gantinya, menjalankan salah satu program kalkulator yang lebih maju yang disebutkan oleh penjawab lain yang menggunakan argumen mereka pada baris perintah.Solusi lain yang belum saya lihat disebutkan di sini adalah Qalculate (qalc) .
untuk versi CLI,
untuk GUI.
Ini memiliki banyak fitur seperti:
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
, misalnya ,help integrate
factorial(5)
danfaculteit(5)
.Anda bilang ingin menggunakannya tanpa awalan, yah ... Anda bisa menggunakannya dengan awalan:
$ qalc 5 ft + 3 cm
(5 * foot) + (3 * centim) = 1.554 m
serta menjalankannya sebagai pengganti.
sumber
dc
! Itu adalah bagian dari coreutils, jadi itu diinstal pada OS X, Ubuntu, dan hampir semuanya. Ini adalah kalkulator RPN, jadi jika Anda tidak suka itu, itu bukan untuk Anda.Perintah yang sangat mendasar adalah sebagai berikut (manpage memiliki semua sintaksis yang tidak saya sertakan. Eksponen, siapa pun?)
Anda hanya perlu spasi antar angka. Mereka diabaikan dalam semua kasus lainnya.
Mengetik nomor mendorongnya ke atas tumpukan.
sumber
42 * 5
ke terminal, dan mintalah hasilnya jawaban1+1
di terminal hampir tidak akan pernah berhasil. Jadi jawaban Anda baik-baik sajaSaya menggunakan Oktaf untuk hal semacam ini: http://www.gnu.org/software/octave/
Ini cukup banyak klon matlab (permintaan maaf jika ini adalah penyederhanaan berlebihan) yang dapat digunakan di terminal dengan mengetikkan oktaf. Instal sudo apt-get install oktaf
Ini tidak seperti yang Anda inginkan, tetapi saya pikir saya akan menambahkannya sebagai alternatif untuk python.
Contoh penggunaan:
sumber
Saya suka wcalc. Ini adalah kalkulator ilmiah baris perintah. Mudah ditemukan di Ubuntu Software Center, atau cukup gunakan apt-get.
Ia menerima argumen baris perintah dan juga memiliki mode "shell":
Dan jika seseorang dalam bidang teknik, seperti saya, Anda dapat menggunakan GNU Octave. Ia dapat melakukan segala macam hal, menggambar, memecahkan persamaan simultan. Plus itu adalah alternatif gratis untuk Matlab
sumber
=() { wcalc "$@" }
cara sederhana adalah memanggil python.
Contoh:
sumber
python -c 'import math;print math.log(2)'
Apa yang saya temukan adalah, saya tidak bisa mempercayai opsi Shell expr, bc atau built-in. Oleh karena itu saya menggunakan Perl yang biasanya diinstal di distro * linux
Perhitungan di atas akan mengurangi $ VAL1 dari $ VAL2 dan mencetak tanpa tempat desimal (0f)
Manfaat menggunakan Perl adalah (rincian Pro & Kontra tercantum di sini )
sumber
Anda dapat menambahkan fungsi berikut ke file .bashrc Anda:
Perhatikan bahwa
-l
bendera sangat penting. Tanpanya, gunakanbc
memberi5 / 2 = 2
.Seperti yang disebutkan di atas, perhitungan dapat dilakukan dengan menggunakan
=
tanda di depan formula.sumber
Anda dapat menggunakan awk untuk melakukan perhitungan aritmatika pada terminal,
sumber
gunakan perintah "bc" dan kemudian kamu bisa melakukan perhitungan
contoh
Untuk menggunakan
bc
tanpa catatan garansi, tulis di terminalbc -q
contoh
sumber
Anda dapat menggunakan bind dan bash C-adan C-euntuk mengontrol output. Misalnya, jalankan ini di shell Anda:
Sekarang ketik operasi aritmatika seperti 10 + 15 dan tekan Ctrl+ J:
Anda akan mendapatkan ini. Sekarang, bagaimana caranya?
bind
perintah ini mengubah pengikatan bash Anda, seperti tombol pintas.\C-j
ini setara dengan bash untuk Ctrl + J, ini adalah kombinasi tombol apa yang ingin kita tambahkan ke perintah kita.\C-a
ini membawa kita ke awal baris.echo $((
ini menulisecho $((
di awal.\C-e
membawa kita ke akhir baris))
menutup tanda kurung kami sebelumnya\C-m
ini setara dengan untuk mengembalikan kunci.Anda dapat menulis ini di
~/.inputrc
file Anda :Tentu saja, jawaban lain juga valid! Hanya sedikit men-tweak:
"\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"
Anda dapat mengubah Ctrl + J menjadi apa pun yang Anda suka, tetapi ingat, cobalah untuk tidak mengubahnya untuk sesuatu yang sudah memiliki ikatan;).
Sumber:
sumber
Di masa lalu, saya telah menggunakan
wcalc
dan sebuah program kecil yang disebute
itu tidak mungkin untuk google. Sekarang saya menggunakan skrip python untuk melakukan ini, yang menggunakan beberapa fiture
seperti tanda kurung.wcalc
masih bagus karena bisa melakukan presisi dan konversi unit sewenang-wenang, tapi saya hampir tidak pernah menggunakan fitur-fitur itu.Berikut cara menggunakannya (dengan asumsi bahwa skrip telah disimpan sebagai
e
dan diletakkan di suatu tempat di$PATH
):sumber
Ada satu langkah cara untuk mencapai apa yang Anda inginkan. Yang perlu Anda lakukan adalah mengatur
shell
akun Anda/bin/bc
.sumber
Anda juga dapat menggunakan
printf
shell builtin untuk melakukan perhitungan aritmatika pada terminal.Contoh:
sumber
Anda dapat menggunakan juru bahasa python untuk perhitungan. Berikut tutorial tentang cara melakukannya .
Python 2 dan python 3 dipasang di Ubuntu secara default.
sumber
Buat Kalkulator Terminal
Masukkan yang berikut ini di file .bashrc Anda
Atau, jalankan di prompt shell. Sekarang "calc" dari shell akan berfungsi sebagai berikut:
Semua fungsi dengan "(" atau ")" harus dilampirkan dalam tanda kutip.
sumber