シェルでは明示的に整数型の変数が宣言できます。
これまでループのカウントや計算などは expr コマンドを利用していたのですが、明示的に整数型の変数が宣言できれば、他の言語と同じように算術演算子が使えるので便利です。
整数型の変数で計算させてみる
例えば、整数型の i という変数を宣言する場合は以下の通りです。
1 2 | #!/bin/sh declare -i i |
i に 1 を代入して、さらに 2 を足してみます。
1 2 3 4 5 6 | #!/bin/sh declare -i ${i} i=1 echo 'i = '${i} i=i+2 echo 'i + 2 = '${i} |
結果は、以下の通りです。
1 2 | i = 1 i + 2 = 3 |
四則演算の場合だと、$(()) や expr コマンドを使うのですが、整数型の変数は扱いやすくて楽ですね。
もちろん、引き算、掛け算、割り算などもできます。
1 2 3 4 5 6 7 8 9 10 11 | #!/bin/sh declare -i a b c d i=5 a=i+2 b=i-2 c=i*3 d=i/5 echo 'i + 2 = '${a} echo 'i - 2 = '${b} echo 'i * 3 = '${c} echo 'i / 5 = '${d} |
それぞれ、結果を受け取る変数は整数の宣言が必要ですが、右辺で使う変数(この場合はi)は整数型の宣言はなくても問題ありません。結果は以下の通りです。
1 2 3 4 | i + 2 = 7 i - 2 = 3 i * 3 = 15 i / 5 = 1 |