TopProgramming Languagebash > 2014年1月
2014年1月 9日

bashで演算を行う方法

January 9,2014 1:23 AM
Tag:[]
Permalink

bashで数値の足し算・引き算などの四則演算や、比較演算・論理演算などを行う方法を紹介します。

bashで演算を行う方法

このエントリーはビギナーの方向けの内容です。

1.問題点

次のような変数の足し算の結果を出力するスクリプト(test.sh)を作りました。

#!/bin/sh
 
foo=123
bar=456
hoge=$foo+$bar
echo $hoge

が、このスクリプトを実行すると次のような結果が出力されます。

[~]$ ./test.sh
123+456

次のように数値を直接計算する場合も同様の結果になります。

#!/bin/sh
 
hoge=123+456
echo $hoge

2.算術式展開を使って演算を行う

まず算術式展開「$(())」を使う例を紹介します。

1項のスクリプトについて、赤色の部分のように式全体を算術式展開で括ります。

#!/bin/sh
 
foo=123
bar=456
hoge=$(( $foo+$bar ))
echo $hoge

これで次のような結果が出力されます。

[~]$ ./test.sh
579

算術式展開(または算術展開)は、

$((算術式))

というフォーマットで記述し、カッコ内の算術式を評価してくれます。

具体的には、算術式に含まれる全てのトークンに対し、 パラメータ展開・文字列展開・コマンド置換・クォートの削除を行います(Man page of BASHより引用)。

次のような比較演算も可能です。

#!/bin/sh
 
hoge=$(( 123 < 456 ))
echo $hoge

この場合、「1」が出力されます。

[~]$ ./test.sh
1

「1」は比較の結果が真であることを示します。

3.exprコマンドで演算を行う

もうひとつはexprコマンドを使う方法です。

1項のスクリプトについて、赤色のようにexprコマンドの後方に式を記述し、全体をバッククォートで括ります。

#!/bin/sh
 
foo=123
bar=456
hoge=`expr $foo + $bar`
echo $hoge

これで2項と同様の結果が出力されます。

[~]$ ./test.sh
579

exprは、式を評価して結果を標準出力に書き出すコマンドです。

expr 式...

というフォーマットで記述します。

なお、正しく計算させるには演算子の左右に半角スペースが必要みたいです。

[~]$ expr 123 + 456
579

次のフォーマットでは「123+456」という結果を出力します。

[~]$ expr 123+456
123+456
Comments [0] | Trackbacks [0]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3