bashを使用して2つの数字を加算または減算するには?

bashを使用して2つの数字を加算または減算するには?

数字を読み、次のように動作します。

echo "First number please"
read num1
echo "Second number please"
read num2
echo "Operation?"
read op

ただし、数値を追加しようとするすべての試みは失敗します。

case "$op" in
  "+")
    echo num1+num2;;
  "-")
    echo `num1-num2`;;
esac

ランニング:

First number please
1
Second mumber please
2
Operation?
+

出力:

num1+num2

...または...

echo $num1+$num2;;

# results in: 1+2    

...または...

echo `$num1`+`$num2`;;

# results in: ...line 9: 1: command not found

"4"の代わりに add("2+2") を追加しようとすると、文字列がまだ表示されるようです。

ベストアンサー1

POSIXシェルの算術$二重括弧で完成(( )):

echo "$(($num1+$num2))"

ここから割り当てることもできます。$内部変数名の演算子は(())オプションです。

num1="$((num1+num2))"

さらにexpr:

expr $num1 + $num2

コマンドの分岐/実行を防ぐため、スクリプトに$(())適していますexpr

おすすめ記事