bash - 数値の計算

整数の計算

整数の計算にはexprコマンドを使う。

$ expr 3 + 5
8
$ expr 3 - 5
-2
$ expr 3 '*' 5  #expr 3 \* 5 でもよい
15
$ expr 5 / 3
1
$ expr 5 % 3
2 

数値の比較

数値の比較にはtestコマンドを使う

数値かどうかの判定

変数に1を加える。変数が数値ならexprが0か1を返す。数値でないなら2以上を返す。

#!/usr/bin/sh
expr "$1" + 1 > /dev/null 2>&1
if [ $? -lt 2 ]; then
    echo "numeric"
else
     echo "not numeric" 
fi

浮動小数点を含む計算

bcコマンドを使う。scaleで小数点第何位まで出力するか指定する。

$ echo "scale=5; 10 / 3" | bc
3.33333

カラムに対する計算

例えば ls -l のファイルサイズの合計を計算する。

$ ls -l | awk '{total += $5} END {print total}'
24323