サイトアイコン スグブログ

【シェルスクリプト基礎】足し算をする方法!エラー対処法あり。

ランダム

シェルスクリプトで足し算したいけど、上手くできなかったという方はいないでしょうか?

簡単に書けると思っていたコードでも、初心者では間違ってしまいます。

なので今回はシェルスクリプトで足し算をするコードを、実践を踏まえてご紹介します。

実際に使用したコードやその実行結果も全て書いているので、わかりやすいです。

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))

シェルスクリプトで足し算する時は、普通にすると文字列と文字列の足し算になるので気を付けてください。

モバイルバージョンを終了