2011-07-05 6 views
3

"expr"キーワードを使用する必要があることを教えてください。シェルスクリプトの算術式の扱い

EG: -

echo `expr a*b` 

そして、我々は、単に単純な算術演算子を用いた演算式を処理することができます。

EG: -

echo a*b 

事前に感謝します。

+0

$(())

echo $((2*3)) 

結果を用いてarithmaticを行うことができますか? –

+0

私はbashシェルを使用しています。問題の最初の方法は算術式の評価に使用できませんか? – Adnan

+0

**何か試しましたか? –

答えて

6

2番目の形式は、ほとんど確実にあなたが望むことをすることはありません。バッシュでは、内蔵されている数値表現ハンドラ、しかし:POSIXで

A=4; B=6; echo $((A * B)) 
13

は、彼らがそう

$((...)) 

で囲まれているときに、シェルで直接式を評価することができシェル:

a=12 
b=34 
echo $(($a + $b)) 

そして、これは必ずしもそうではありませんでしたが、あなたが遭遇する可能性があるすべてのPOSIXシェルにも対処します:

echo $((a + b)) 

これは長いことですが、シェルは算術演算を行わなかったので、外部プログラムexprが書かれました。最近では、exprは(通常/ binに入っていることに加えて)通常は組み込みであり、利用可能なPosix $((...))構文があります。 $((...))が1日目から遡っていた場合は、expr.

となります。シェルはまったく通常のコンピュータ言語ではなく、正確にはマクロプロセッサではありません。CLIです。インライン式は行いません。引用符で囲まれていない*は、CLIが算術演算を行うよりも頻繁にファイルを参照する必要があるため、ファイル名の一致のためのワイルドカードです。

2

あなたが使用しているシェル6