■四則演算
▼基本的な四則演算
Shell内で四則演算を行うときは、以下の演算子を使用する。
| 演算子 | 概要 |
|---|---|
| + | 加算 |
| – | 減算 |
| * | 乗算 |
| / | 除算(商のみ) |
| % | 除算(余りのみ) |
| ** | べき乗 |
・サンプルコード
# 変数宣言(整数型)
declare -i num1
declare -i num2
# 初期値をセット
num1=10
num2=3
# 四則演算を実施(順に足し算・引き算・掛け算・割り算(商のみ))
echo $((num1 + num2))
echo $((num1 - num2))
echo $((num1 * num2))
echo $((num1 / num2))
# 除算(余りのみ)とべき乗
echo $((num1 % num2))
echo $((num1 ** num2))※変数宣言(declare -i 変数名)は省略しても問題なし。
・実行結果
上から順に、以下の計算結果を示す。
10 + 3
10 – 3
10 × 3
10 / 3
10 % 3
103
13
7
30
3
1
1000▼代入式による四則演算
1つの計算式に計算した結果を変数に代入する方法である。
| 演算子 | 概要 |
|---|---|
| += | 加算 |
| -= | 減算 |
| *= | 乗算 |
| /= | 除算(商のみ) |
| %= | 除算(余りのみ) |
・サンプルコード
# 変数宣言
declare -i num3
num3=12
# 加算した結果を代入
echo $((num3+=10))
# 減算した結果を代入
echo $((num3-=10))
# 乗算した結果を代入
echo $((num3*=10))
# 除算した結果を代入
echo $((num3/=10))
# 除算した余りを代入
echo $((num3%=10))
・実行結果
22
12
120
12
2各計算が実行されると、変数「num3」に計算結果が格納されていく。
従って、同じ変数「num3」で代入式の四則演算を行うとき、変数「num3」は以下の値が格納されている。
| 計算前:変数(num3)の値 | 演算 | 計算結果 | 計算後:変数(num3)の値 |
|---|---|---|---|
| 12 | num3+=10 | 12 + 10 = 22 | 22 |
| 22 | mum3-=10 | 22 – 10 = 12 | 12 |
| 12 | num3*=10 | 12 * 10 = 120 | 120 |
| 120 | num3/=10 | 120 / 10 = 12 | 12 |
| 2 | num3%=10 | 12 % 10 = 2 | 2 |
■等しい/等しくない・大小判定演算子
プログラム処理等で比較する際、等しい/等しくない、また値の大小を判定する場合の演算子を以下に示す。
| 演算子 | 概要 |
|---|---|
| A == B | AとBは等しい |
| A != B | AとBは等しくない |
| A >= B | AはB以上 |
| A <= B | AはB以下 |
| A > B | AはBより大きい |
| A < B | AはBより小さい |
・サンプルコード
比較判定処理の後にエラーレベル判定「$?」を組み合わせることで、真偽判定が可能となる。
※1行に比較判定とエラーレベル判定を行うにはセミコロン「 ; 」を使用する。
# 等しい・等しくない判定(True:0, False:1)
((10 == 10));echo $?
((10 == 3));echo $?
((10 != 10));echo $?
((10 != 3));echo $?
# 大小判定(True:0, False:1)
((10 > 3));echo $?
((10 < 3));echo $?・実行結果
▼等しい・等しくない判定
0
1
1
0▼大小判定
0
1


コメント