シェルスクリプト プログラミング

シェルスクリプトで変数を数値として扱って計算や条件分岐をする

 

二重に括弧でくくって$を付ける

ポイント

変数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は桁数指定)
 

 

 

-シェルスクリプト, プログラミング