二重に括弧でくくって$を付ける
ポイント
変数hogeを数値として扱って計算や条件分岐に使いたい時には、
$((hoge+1))
のように、二重括弧でくくって$を付ける
色んなパターンでの挙動は以下の通りです。
shell-script
#!/bin/bash
hoge=10
echo $hoge+1
# 10+1 (文字列として扱われる)
echo $(hoge+1)
# error hoge+1: command not found (そもそもエラー)
echo $((hoge+1))
# 11 (バッチリ)
fuga=3
echo $((hoge*fuga))
# 30 (変数同士の計算もできる)
if [ $(( hoge )) -gt 5 ]; then
echo "${hoge} is Greater than 5"
fi
# 10 is Greater than 5 (比較もできる)
fuga=3
echo $((hoge/fuga))
# 3 (標準では小数点は扱えない)
echo "scale=3; $hoge / $fuga" | bc
# 3.333 (少数計算がしたいときはbcコマンドにパイプする。scaleは桁数指定)