シェル操作で構文エラーが発生するのはなぜですか?

シェル操作で構文エラーが発生するのはなぜですか?

Linuxシェルスクリプト()に問題がありますsh

組み合わせを計算するスクリプトを作成しようとしていますが、関数を計算しようとするとオーバーフローが発生しているようです。だから別のスキルを試しています。この技術では、以下を使用しました。

a=`expr $var1 \* $var2 / $var3`

これによりエラーが発生し、明らかにこれを行うことはできません。

a=`expr ($var1 \* $var2) / $var3`

なぜなら、これもエラーを引き起こすからです。

どうすればいいですか?

ベストアンサー1

dc任意の精度結果に使用できます。

precision=4 var1=3 var2=4 var3=5
a=`echo "$precision k $var1 $var2 * $var3 /p" | dc`

これは1977年頃以来、ほぼすべてのUnix亜種で動作します。 gnu dcが利用可能であることを知っていれば、もっと簡単です。

a=`dc -e "$precision k $var1 $var2 * $var3 /p"`

使用できます。

おすすめ記事