突破してみる? / Why don't you get over?

ソフトウェアエンジニアの備忘録 / Memorandum for software engineers

Bashで整数の加減乗除はどうやるの? -- Bashの算術展開と算術評価

Bashの算術展開

Bashでも整数の算術計算ができます。詳しくはman 1 bashのArithmetic ExpansionとArithmetic Evaluationのところを読むといいのですが、少し例を挙げてみたいと思います。

加減乗除

加減乗除と剰余とべき乗の計算ができます。

$ var=10
$ echo $((var + 3))
13
$ echo $((var - 3))
7
$ echo $((var * 3))
30
$ echo $((var / 3))
3
$ echo $((var % 3))
1
$ echo $((var ** 3))
1000
$

インクリメント、デクリメント

$ var=3
$ echo $((var++))
3
$ echo ${var}
4
$ echo $((++var))
5
$ echo ${var}
5
$ echo $((var--))
5
$ echo ${var}
4
$ echo $((--var))
3
$ echo ${var}
3
$

Bashの算術評価

Bashでは制御構造の中で算術評価ができます。例を挙げてみたいと思います。

ループ

$ for ((i = 0; i < 4; i++)); do echo ${i}; done
0
1
2
3
$ i=0
$ while ((i < 4)); do echo $((i++)); done
0
1
2
3
$

分岐

$ var=10
$ if ((var < 100)); then echo "true"; else echo "false"; fi
true
$ var=1000
$ if ((var < 100)); then echo "true"; else echo "false"; fi
false
$