bash
Như những người khác lưu ý, bash
không hỗ trợ số học dấu phẩy động, mặc dù bạn có thể giả mạo nó bằng một số thủ thuật thập phân cố định, ví dụ với hai số thập phân:
echo $(( 100 * 1 / 3 )) | sed 's/..$/.&/'
Đầu ra:
.33
Xem câu trả lời của Nilfred cho cách tiếp cận tương tự nhưng ngắn gọn hơn.
Lựa chọn thay thế
Bên cạnh các đề cập bc
và giải awk
pháp thay thế cũng có những điều sau đây:
clisp
clisp -x '(/ 1.0 3)'
với đầu ra được làm sạch:
clisp --quiet -x '(/ 1.0 3)'
hoặc thông qua stdin:
echo '(/ 1.0 3)' | clisp --quiet | tail -n1
đc
echo 2k 1 3 /p | dc
máy tính thiên tài cli
echo 1/3.0 | genius
bản thảo
echo 1 3 div = | gs -dNODISPLAY -dQUIET | sed -n '1s/.*>//p'
gnuplot
echo 'pr 1/3.' | gnuplot
jq
echo 1/3 | jq -nf /dev/stdin
Hoặc là:
jq -n 1/3
ksh
echo 'print $(( 1/3. ))' | ksh
lua
lua -e 'print(1/3)'
hoặc thông qua stdin:
echo 'print(1/3)' | lua
cực đại
echo '1/3,numer;' | maxima
với đầu ra được làm sạch:
echo '1/3,numer;' | maxima --quiet | sed -En '2s/[^ ]+ [^ ]+ +//p'
nút
echo 1/3 | node -p
quãng tám
echo 1/3 | octave
perl
echo print 1/3 | perl
trăn2
echo print 1/3. | python2
trăn3
echo 'print(1/3)' | python3
R
echo 1/3 | R --no-save
với đầu ra được làm sạch:
echo 1/3 | R --vanilla --quiet | sed -n '2s/.* //p'
hồng ngọc
echo print 1/3.0 | ruby
wcalc
echo 1/3 | wcalc
Với đầu ra được làm sạch:
echo 1/3 | wcalc | tr -d ' ' | cut -d= -f2
zsh
echo 'print $(( 1/3. ))' | zsh
các đơn vị
units 1/3
Với đầu ra nhỏ gọn:
units --co 1/3
Những nguồn khác
Stéphane Chazelas đã trả lời một câu hỏi tương tự trên Unix.SX.