シェルスクリプトで足し算したいけど、上手くできなかったという方はいないでしょうか?
簡単に書けると思っていたコードでも、初心者では間違ってしまいます。
なので今回はシェルスクリプトで足し算をするコードを、実践を踏まえてご紹介します。
実際に使用したコードやその実行結果も全て書いているので、わかりやすいです。
windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。
この記事を読めばシェルスクリプトで足し算する方法がより理解できます。
シェルスクリプトで足し算する方法
シェルスクリプトで足し算する方法は以下です。
- 「((a=数字+数字))」を使用する
- 「declare -i 変数」を使用する
- 「$((数字+数字))」を使用する
足し算する方法1、「((a=数字+数字))」を使用する
((a=1+1))
echo $a
(())で囲む事でシェルスクリプトで足し算する事が出来ます。
echoコマンドでその結果を表示しようとしています。
これは以下のようにスペースを入れてもエラーにはなりません。
(( b = 2 + 2 ))
echo $b
また以下のように変数も$無しで展開する事が出来ます。
x=3
y=3
(( c=x+y ))
echo $c
今までのシェルスクリプトを実行してみます。
#!/bin/bash
((a=1+1))
echo $a
(( b = 2 + 2 ))
echo $b
x=3
y=3
(( c=x+y ))
echo $c
シェルスクリプトを実行した結果は以下となりました。
[root@localhost workspace]# bash addition.sh
2
4
6
エラー無く成功しています。
足し算する方法2、「declare -i 変数」を使用する
しかし上記で行った足し算はその場限りで、変数に入り文字列になってしまいます。
更に足し算をしたい場合、思った結果になりません。
以下のシェルスクリプトを実行して見ます。
#!/bin/bash
((a=1+1))
echo $a
a+=1
echo $a
すると結果は以下となりました。
[root@localhost workspace]# bash addition.sh
21
先程足し算した「2」という文字列と「1」という文字列が足し算されて「21」という文字列になりました。
ここで使用するのが「declare -i 変数」を使った構文です。
これは変数を数値として見てくれます。
以下のシェルスクリプトを実行して見ます。
#!/bin/bash
declare -i d
d=5+5
echo $d
実行した結果は以下となりました。
[root@localhost workspace]# bash addition.sh
10
シェルスクリプトで足し算が出来ています。
引き続き計算してみましょう。
#!/bin/bash
declare -i d
d=5+5
echo $d
d+=1
echo $d
先程足し算した「10」に1を足し算して「11」になっています。
[root@localhost workspace]# bash addition.sh
10
11
足し算する方法3、「$((数字+数字))」を使用する
シェルスクリプトで足し算してそのまま表示するには、以下のようにコードを書きます。
echo $((4+4))
これでも足し算が出来ます。
以下のシェルスクリプトを実行して見ます。
#!/bin/bash
echo $((4+4))
シェルスクリプトを実行した結果は以下となりました。
[root@localhost workspace]# bash addition.sh
8
成功しています。
シェルスクリプトで足し算するとエラーとなるコード
シェルスクリプトで足し算するコードは紹介しました。
以下のようにすると足し算できずにエラーとなってしまいます。
#!/bin/bash
e=((6+6))
echo $e
エラーが出るシェルスクリプトを実行した結果は以下となりました。
[root@localhost workspace]# bash addition.sh
addition.sh: 行 3: 予期しないトークン `(' 周辺に構文エラーがあります
addition.sh: 行 3: `e=((6+6))'
変数ごと(())の中に入れてあげる様にしましょう!
シェルスクリプトで足し算する方法のまとめ
シェルスクリプト内で足し算する方法は以下です
- 「((a=数字+数字))」を使用する
- 「declare -i 変数」を使用する
- 「$((数字+数字))」を使用する
よくやってしまいがちなエラーになる足し算のコードは以下です。
- e=((6+6))
シェルスクリプトで足し算する時は、普通にすると文字列と文字列の足し算になるので気を付けてください。