bash
他の人が指摘しているように、bash
浮動小数点演算はサポートされていませんが、小数点以下2桁など、固定の小数のトリックで偽造することはできます。
echo $(( 100 * 1 / 3 )) | sed -e 's/..$/.&/;t' -e 's/.$/.0&/'
出力:
.33
同様ですがより簡潔なアプローチについては、ニルフレッドの回答を参照してください。
代替案
上記bc
およびawk
代替案に加えて、以下もあります。
clisp
clisp -x '(/ 1.0 3)'
クリーンアップされた出力:
clisp --quiet -x '(/ 1.0 3)'
またはを通じてstdin
:
echo '(/ 1.0 3)' | clisp --quiet | tail -n1
dc
echo 2k 1 3 /p | dc
天才CLI計算機
echo 1/3.0 | genius
ghostscript
echo 1 3 div = | gs -dNODISPLAY -dQUIET | sed -n '1s/.*>//p'
gnuplot
echo 'pr 1/3.' | gnuplot
Imagemagick
convert xc: -format '%[fx:1/3]' info:
またはを通じてstdin
:
echo 1/3 | { convert xc: -format "%[fx:$(cat)]" info:; }
jq
jq -n 1/3
またはを通じてstdin
:
echo 1/3 | jq -nf /dev/stdin
ksh
echo 'print $(( 1/3. ))' | ksh
lua
lua -e 'print(1/3)'
またはstdinを介して:
echo 'print(1/3)' | lua
マキシマ
echo '1/3,numer;' | maxima
クリーンアップされた出力:
echo '1/3,numer;' | maxima --quiet | sed -En '2s/[^ ]+ [^ ]+ +//p'
ノード
echo 1/3 | node -p
オクターブ
echo 1/3 | octave
perl
echo print 1/3 | perl
python2
echo print 1/3. | python2
python3
echo 'print(1/3)' | python3
R
echo 1/3 | R --no-save
クリーンアップされた出力:
echo 1/3 | R --vanilla --quiet | sed -n '2s/.* //p'
ルビー
echo puts 1/3.0 | ruby
単位
units 1/3
コンパクトな出力:
units --com 1/3
wcalc
echo 1/3 | wcalc
クリーンアップされた出力:
echo 1/3 | wcalc | tr -d ' ' | cut -d= -f2
zsh
print $(( 1/3. ))
またはを通じてstdin
:
echo 'print $(( 1/3. ))' | zsh
その他の情報源
StéphaneChazelas は、 ULに関する同様の質問に答えました。