Menggunakan echo "20+5" secara harfiah menghasilkan teks “20+5 “.
 Perintah apa yang dapat saya gunakan untuk mendapatkan jumlah numerik, 25 dalam hal ini?
 Juga, apa cara termudah untuk melakukannya hanya dengan menggunakan bash untuk floating
 point? Misalnya, echo $((3224/3807.0)) mencetak  :(.
 Saya mencari jawaban menggunakan shell perintah dasar ('command
 line') itu sendiri atau dengan menggunakan bahasa yang tersedia dari
 baris perintah.
Jawaban yang Diterima:
Ada banyak pilihan!!!
Ringkasan
$ printf %.10f\n "$((10**9 * 20/7))e-9"   # many shells. Not mksh.
$ echo "$((20.0/7))"                       # (ksh93/zsh/yash, some bash)
$ awk "BEGIN {print (20+5)/2}"
$ zcalc
$ bc <<< 20+5/2
$ bc <<< "scale=4; (20+5)/2"
$ dc <<< "4 k 20 5 + 2 / p"
$ expr 20 + 5
$ calc 2 + 4
$ node -pe 20+5/2  # Uses the power of JavaScript, e.g. : node -pe 20+5/Math.PI
$ echo 20 5 2 / + p | dc 
$ echo 4 k 20 5 2 / + p | dc 
$ perl -E "say 20+5/2"
$ python -c "print(20+5/2)"
$ python -c "print(20+5/2.0)"
$ clisp -x "(+ 2 2)"
$ lua -e "print(20+5/2)"
$ php -r 'echo 20+5/2;'
$ ruby -e 'p 20+5/2'
$ ruby -e 'p 20+5/2.0'
$ guile -c '(display (+ 20 (/ 5 2)))'
$ guile -c '(display (+ 20 (/ 5 2.0)))'
$ slsh -e 'printf("%f",20+5/2)'
$ slsh -e 'printf("%f",20+5/2.0)'
$ tclsh <<< 'puts [expr 20+5/2]'
$ tclsh <<< 'puts [expr 20+5/2.0]'
$ sqlite3 <<< 'select 20+5/2;'
$ sqlite3 <<< 'select 20+5/2.0;'
$ echo 'select 1 + 1;' | sqlite3 
$ psql -tAc 'select 1+1'
$ R -q -e 'print(sd(rnorm(1000)))'
$ r -e 'cat(pi^2, "n")'
$ r -e 'print(sum(1:100))'
$ smjs
$ jspl
$ gs -q  <<< "5 2 div 20 add  ="
 Detail
Kerang
 Anda dapat menggunakan ekspansi aritmatika POSIX untuk bilangan bulat aritmatika echo "$((...))"  :
$ echo "$((20+5))"
25
$ echo "$((20+5/2))"
22
 
 Cukup portabel (ash dash yash bash ksh93 lksh zsh  ):
 Dengan menggunakan kemampuan printf untuk mencetak float, kita dapat memperluas sebagian besar shell untuk melakukan matematika floating point meskipun dengan rentang terbatas (tidak lebih dari 10 digit):
$ printf %.10f\n "$((1000000000 *   20/7  ))e-9"
2.8571428570
 
 ksh93  , yash  dan zsh  lakukan support float di sini:
$ echo "$((1.2 / 3))"
0.4
 
 hanya ksh93  (langsung) dan zsh  memuat library mathfunc di sini:
$ echo "$((4*atan(1)))"
3.14159265358979324
 
 (zsh perlu memuat zmodload zsh/mathfunc untuk mendapatkan fungsi seperti atan ).
Secara interaktif dengan zsh:
$ autoload zcalc
$ zcalc
1> PI/2
1.5708
2> cos($1)
6.12323e-17
3> :sci 12
6.12323399574e-17
 Dengan (t)csh (hanya bilangan bulat):
% @ a=25 / 3; echo $a
8
 
 Dalam rc keluarga shell, akanga adalah yang dengan ekspansi aritmatika:
; echo $:25/3
8
 kotak alat POSIX
 bc  (lihat di bawah untuk mode interaktif), manual di sini
 Mnemonik:b est c alkulator (meskipun b sebenarnya untuk dasar ).
$ echo 20+5/2 | bc
22
$ echo 'scale=4;20+5/2' | bc
22.5000
 (mendukung angka presisi arbitrer)
bc mode interaktif:
$ 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'. 
5+5
10
2.2+3.3
5.5
 
 Solusi Rush, expr  (tidak ada mode interaktif):
$ expr 20 + 5
25
$ expr 20 + 5 / 2
22
 
 Solusi Joshua:awk  (tidak ada mode interaktif):
$ calc() { awk "BEGIN{print $*}"; }
$ calc 1/3
0.333333
 Alat portabel lainnya yang kurang lebih
 Solusi Arcege, dc  (mode interaktif:dc ):
Yang bahkan lebih menyenangkan karena bekerja dengan notasi semir terbalik.
$ echo 20 5 2 / + p | dc 
22
$ echo 4 k 20 5 2 / + p | dc 
22.5000
 Tapi tidak sepraktis itu kecuali jika Anda banyak bekerja dengan notasi pemoles terbalik.
Terkait:Melampirkan vs. tidak melampirkan nilai variabel dalam tanda kutip di bash?
 calc DQdims  (diperlukan sudo apt-get install apcalc) :
$ calc 2 + 4
6
 Penerjemah bahasa tujuan umum:
 solusi manatwork, node  (mode interaktif:node; fungsi keluaran tidak diperlukan):
$ node -pe 20+5/2  # Uses the power of JavaScript, e.g. : node -pe 20+5/Math.PI
22.5
 
 Perl (mode interaktif:perl -de 1 ):
$ perl -E "say 20+5/2"
22.5
 
 Python (mode interaktif:python; fungsi keluaran tidak diperlukan):
$ python -c "print(20+5/2)"
22 # 22.5 with python3
$ python -c "print(20+5/2.0)"
22.5
 Juga mendukung angka presisi arbitrer:
$ python -c 'print(2**1234)'
295811224608098629060044695716103590786339687135372992239556207050657350796238924261053837248378050186443647759070955993120820899330381760937027212482840944941362110665443775183495726811929203861182015218323892077355983393191208928867652655993602487903113708549402668624521100611794270340232766099317098048887493809023127398253860618772619035009883272941129544640111837184
 
 Jika Anda memiliki clisp  terinstal, Anda juga dapat menggunakan notasi polesan:
$ clisp -x "(+ 2 2)"
 
 Solusi Marco, lua  (mode interaktif:lua ):
$ lua -e "print(20+5/2)"
22.5
 
 PHP (mode interaktif:php -a ):
$ php -r 'echo 20+5/2;'
22.5
 
 Ruby (mode interaktif:irb; fungsi keluaran tidak diperlukan):
$ ruby -e 'p 20+5/2'
22
$ ruby -e 'p 20+5/2.0'
22.5
 
 Penipuan (mode interaktif:guile ):
$ guile -c '(display (+ 20 (/ 5 2)))'
45/2
$ guile -c '(display (+ 20 (/ 5 2.0)))'
22.5
 
 S-Lang (mode interaktif:slsh; fungsi output tidak diperlukan, cukup ; terminator):
$ slsh -e 'printf("%f",20+5/2)'
22.000000
$ slsh -e 'printf("%f",20+5/2.0)'
22.500000
 
 Tcl (mode interaktif:tclsh; fungsi output tidak diperlukan, tetapi expr adalah):
$ tclsh <<< 'puts [expr 20+5/2]'
22
$ tclsh <<< 'puts [expr 20+5/2.0]'
22.5
 Javascript cangkang:
$ smjs
js> 25/3
8.333333333333334
js>
$ jspl
JSC: 25/3
RP: 8.33333333333333
RJS: [object Number]
JSC:
Good bye...
$ node
> 25/3
8.333333333333334
>
 Berbagai SQL:
 SQLite (mode interaktif:sqlite3 ):
$ sqlite3 <<< 'select 20+5/2;'
22
$ sqlite3 <<< 'select 20+5/2.0;'
22.5
 MySQL :
mysql -BNe 'select 1+1'
 PostgreSQL :
psql -tAc 'select 1+1
 _Opsi pada mysql dan postgres menghentikan gambar 'ascii art'!
Bahasa berorientasi matematika khusus:
B dalam mode biasa – mari kita buat 1000 angka acak Normal dan dapatkan simpangan baku dan cetak
$ R -q -e 'print(sd(rnorm(1000)))'
> print(sd(rnorm(1000)))
[1] 1.031997
 B menggunakan kecil skrip – mari cetak pi kuadrat
$ r -e 'cat(pi^2, "n")'
9.869604
$  r -e 'print(sum(1:100))'
[1] 5050
 PARI/GP , sistem aljabar komputer ekstensif untuk teori bilangan, aljabar linier, dan banyak hal lainnya
$ echo "prime(1000)"|gp -q
7919                        // the 1000th prime
$ echo "factor(1000)" | gp -q
[2 3]
[5 3]                       // 2^3*5^3
$ echo "sum(x=1,5,x)" | gp -q
15                          // 1+2+3+4+5
 GNU Oktaf (bahasa yang ditafsirkan tingkat tinggi, terutama ditujukan untuk perhitungan numerik)
Juga mendukung bilangan kompleks:
$ octave
>> 1.2 / 7
ans =  0.17143
>> sqrt(-1)
ans =  0 + 1i
 Julia , bahasa dan juru bahasa berkinerja tinggi untuk komputasi ilmiah dan numerik.
Opsi non-interaktif:
$ julia -E '2.5+3.7'
6.2
 
 GhostScript GhostScript adalah interpreter PostScript, sangat umum diinstal bahkan di distribusi yang sangat lama.
 Lihat dokumen PostScript untuk daftar perintah matematika yang didukung.
Contoh interaktif:
$ GS_DEVICE=display gs
GPL Ghostscript 9.07 (2013-02-14)
Copyright (C) 2012 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
GS>5 2 div 20 add  =
22.5
GS>