Linuxでの数学演算

1275 ワード

Linuxの数学の演算方式は以下のいくつかの方式だけである:1)expr式の具体的な文法は:
expr 1 + 5

この方法では、スペースが必要であり、スクリプトで乗算記号がワイルドカードとして認識されるなど、スクリプトで問題が発生しやすいことが要求されます.したがって、転送文字(反スラッシュ)2)を付ける必要があります.四角カッコ([])を使用します.たとえば、var 1=[2*3]のように便利です.スペースを付ける必要があります.exprと同様に、結果を変数に割り当てるときにコマンド形式$()を付ける必要はありません.3)コマンド環境でカッコを使用するには、次のようにします.
var=$((2*4))

この方法でもスペースは必要ありません.しかし,以上のいくつかの方式では整数型の演算しか計算できず,浮動小数点型は計算できない.
4)bc計算機bashが持つ計算機は浮動小数点演算を解決できる
bc -q                

bcを入力すると、linuxが所有する計算機に入ることができます.デフォルトのscaleは0です.つまり、小数点以下の桁数は保持されません.自分で設定できます.
$ bc -q
scale=3
2.78/3
.926
quit

quitは終了を表す.またbash計算機では変数を定義することもでき、計算機内で参照するときに$記号を付ける必要はありません.
bc -q
val1=10
val1 * 4
40
val2=val1 / 5
print var2
2
quit

スクリプトでbcを使用するのは便利です.たとえば、次のようにします.
#!/bin/bash
var1=100
var2=45
var3=$(echo "scale=4; $var1 / $var2" | bc)
echo The answer for this is $var3

大量の計算を解決するときは、次のようなインラインリダイレクトを使用します.
var1=10.46
var2=43.67
var3=33.2
var4=71

var5=$(bc << EOF
scale=4
a1=($var1 * $var2)
b1=($var3 * $var4)
a1+b1
EOF)

echo The final answer for this mess is $var5

bashコンピュータで作成された変数は計算機でのみ有効であり、スクリプトでは使用できません.